QR Code
Share your QR code
Your Joinlist page now comes with a QR code you can download, or copy to clipboard and share to your community.
Redirect to a URL on registration
Redirect to your website or a custom URL when a users signs up to your page.
Confirmation message on registration
Users can now set a custom confirmations message to users upon registration.
UTM Builder
We've added a UTM Builder to help you better track your marketing campaigns.
Custom Social Media Cards
You can now customize your social media cards to better fit your brand's style.
Facebook Pixel ID
We've integrated Facebook Pixel ID for improved ad tracking and targeted marketing.
Google Analytics ID
Use your Google Analytics ID with our platform to gain a better understanding of user interactions.
Add a collaborator
Our new 'Add a collaborator' allows you to add combine your profile image with another collaborators.
Fixes and improvements
- Users unable to logout from the dashboard
- Page loads of registration page 3x faster
- Fixed export and copy to clipboard not working
Spaces
Introducing Spaces
Projects are now grouped by Spaces. This feature is particularly useful for users who manage multiple communities and want to group projects by their team or collaborate on a project.
Soon we will add the ability to add members to your Space, and create multiple Spaces for your community/collab/team.
Publish project to Discord
If you have installed our Discord bot, publishing your project will also send a message to your Discord Channel.
Install the Discord bot by:
- Head to your Dashboard
- Click
Integrations
- Click
Install Discord Bot
Advanced Twitter Requirements
In addition to requiring your community to follow your account and collaborators, we have added additional filters:
- User must have a complete profile
- User must have an active account
- Like, retweet or like & retweet a status
- Must be followed by your Twitter account
Login with Email
If you are a creator, we now allow logging in with an email address, in addition to connecting with Twitter.
Fixes and improvements:
- Remove duplicate entries when Exporting
- Added option in settings/general to enable/disable FAQ
- Show the Twitter username and discord username on the entry list
- Send test messages to a channel in the Discord Integration
- Track IP address on each Entry (hashed IP)
- Location is included on the exported entries
- Show example of Bulk Import
- Option to disable Auto-select Raffle Winners
- Using sonner toast for toast notifications
- Redirect to login page when user logs out on dashboard
- Fixed space not loading from cancelled onboarding
- Fixed incorrect mutual follower count on some entries
- Fixed going from Integrations -> Dashboard gets not projects
- Fixed hitting https://joinlist.me/dashboard/{space}/integrations goes to Project Details
- Fixed unable to find channels or roles when adding discord bot
- Change the ComboboxPopover button to one similar to one consistent with Joinlist
- When a new user gets created, create them a default space in nextauth
- When the project gets created, if no spaceId given, get the default spaceId for the user
- Use vercel crons for handle project status
- Unable to verify NFT on register page
- Fixed Error: permission denied for table http_request_queue
- Upgrade to Pro in menu
- Fixed signing up with email defaults to type as collector
- Show signin with email on login page
- Fixed there is already an account associated with this email address.
- Fixed TypeError: Cannot destructure property 'nameRequired' of 'b' as it is undefined.
- Fixed error when clicking Settings on new project
- Fixed user can enter from multiple locations
- Create invite url for Discord via the Bot
- Create channel from discord bot
- Fixed welcome email not sending
- Track if the user is a creator or collector when signing up
- Sending out a welcome email upon signup
- Fixed unable to save empty input for number of raffle winners
- Fixed checkbox takes two clicks to check in Discord Settings
- Fixed failed to delete project. Reason: update or delete on table "Project" violates foreign key constraint "EntryArchive_projectId_fkey" on table "EntryArchive"
- Required/optional for contact fields
- Fixed unable to view tweet from Register page
- List the default settings we have for an active account
Projects are now grouped by Spaces. This feature is particularly useful for users who manage multiple communities and want to group projects by their team or collaborate on a project.
Notify Winners
Pro users can now notify winners with a beautifully crafted email. This is enabled by default for all paying customers.
Enable this feature by heading to:
- Go to your
Project -> Settings -> General
- Scroll down to Email Winners
- Enable the toggle and hit Save
Fixes and Improvements
- Bulk import wallets from CSV
- Copy list of addresses to clipboard in
Project -> More -> Copy to Clipboard
- (Automatically disconnect Twitter account if user revoked access to Joinlist)[https://twitter.com/sambarrowclough/status/1614582632313913345]
- Fixed export only winners not working
- Joinlist is listed on Alchemy Dapp Store
- Created blog post about clearing bots for 0xTechno
- Backup every Entry record when a delete occurs
- Must follow joinlist on free
- Hide buy banner for paid users on Joinlist
- Improved error when trying to register and no discord server/role found
- Accept only image types when upload pfp
- Setup local database environment for supabase
- Fixed planId not changing when user upgrades
Only export winners
Added the ability to only export either the winners or all entries.
- Improved the banner creation feature, allowing users to create their own banners
- Fixed the issue with the "Not Found on Aptos" error
- Added a pricing banner to provide users with pricing information
- Improved the Discord integration, fixing issues with the role requirements not being picked up for existing users and the checkbox turning off when clicked away from the page
- Improved the Twitter integration, adding the ability to search for accounts and follow them
- Fixed the issue with the "delete entry" feature not working properly
- Improved the search functionality, allowing for a recursive search and normalizing the results for Twitter searches
- Fixed the issue with the raffle quantity throwing an error
Twitter Search
You can search any user on Twitter user without fail. On top of that, we've improved the modal to search users - giving you improved metrics like number of followers account verified and short description. This helps you easily identify the Twitter user you want to add as part of your requirements. View this latest change in Settings > Requirements > Twitter
More free stuff
Free users now can create 6 free projects, from the previous 3. This gives you the power to collaborate with more creators in your network.
Collection Search
We've improved the search for any collection on Ethereum. Search now opens up a command menu, giving you more insights in to each collection. View this latest change in Settings > Requirements > Ethereum
Receive Updates on New Launches
We've added a toggle for Collectors to receive updates whenever a new joinlist page has launched. This will benefit both the Creator and Collector. The former to gain more exposure. And the latter to see the latest joinlist pages blowing up to increase chances of getting in early.
Remove Joinlist Branding
Creators now have the ability to remove the default Joinlist "powered by" badge that is on every registration page. Creators can now white label their joinlist page by toggling this option off. Play with this in Settings > General > Remove Joinlist Branding
Change Project Visibility
Its now possible to set any project from "public" to "private". This will eventually hide projects from our Explore page which we're currently building. Toggle this option in Settings > General > Change Visibility
Improved raffle status
When a raffle ends of joinlist, collectors had no way of knowing if they won or not. Now, we display a friendly "Bad Luck" message for users who didn't get picked, and a "You won" for the ones who did.
Improvements
- Countdown when we call Discord API again on rate limited
- Registration Page requirements text not aligned with the icon
- Display only the last 100 entries on the project dashboard
- Display the count of the entries using the new /api/v1/count API
- Toast on save in dashboard now in left hand bottom corner
- If usage exceeded when hitting create project, show the updrage modal
- Choosing the time when setting the end at date now opens at the current time, rather than 12pm last night
- Create separated endpoints for each platform to check if the collector has met the requirements. e.g /checks/twitter, /checks/ethereum
- Delete project now redirects straight to the dashboard without delay
Fixes
- Fixed duplicating a project would not pick new winners
- Fixed not picking up nfts owner by user on the registration page
- Fixed hitting the Checkbox on discord enable role doesn't toggle straight away
- Fixed dark mode popover styles
Duplicate Project
Duplicate Project
This weeks release introduces Duplicate Project. Helpful for when you are wanting to create multiple collabs with projects - without having to re-type the same settings. This feature is available in Settings > General > Duplicate Project
.
Minimum SOL Balanace
Support for Minimum Solana Balance is now available for a projects. Useful to ensure your community has the funds to mint your collection. Head to Settings > Requirements > Solana
to get started.
Contact Form
This weeks release introduces the Contact Form. You can now require users to enter details such as name, email, phone number and address. All details provided will be included in your exported document.
To get started:
- Select a project in your Dashboard
- Head to Settings > Requirements > Contact
- Switch on your desired fields and hit Save
Ask a Question
The new "Ask a question" feature allows you to ask any question to your community as part of your allowlist requirements. Questions can either be optional or required.
To get started with asking a question, follow these steps:
- Select a project in your Dashboard
- Head to Settings > General > Questions
- Write out your question and hit Save
Password Protection
If you want to keep your allowlist pages safe and secure, you can password protect them with Joinlist’s built-in password protection feature. This feature is easy to use and will keep your pages safe from prying eyes.
To Password Protect your allowlists, follow these steps:
- In the Joinlist Dashboard, select a Project.
- Click Settings, then click Security.
- Scroll to "Password Protection"
- Toggle the Switch to "Enabled"
- Enter a password
- Click Save
New
- "Join the Allowlist" Embed Button for Your Website with three different themes
Improvements
- Created a Segmented Control component to select between Light, Dark, and Primary themes for the Embed Button feature
- Made the share button slightly darker on the project settings page
- The Dropdown component now supports light mode
- Changed the Rainbowkit modal to "compact"
- The Dialog component now supports Dark mode
- Popups in the background now close when the Get Embed Button Modal is open
- Share options now available in the Project Dashboard
- Added Embed Button in the share options on the Register Page
- Copy the Embed Button code to the clipboard on click
- Added domain to Embed Button images e.g joinlist.me/share-light.svg
- Password Protected pages now don't flash the Register component on page load
- Display the creator's logo instead of Joinlist's for the Password Protected page
- Created a demo video of Password Protection in action
- Built the /api/v1/password-protection-check endpoint
- Prefixed all Password Protected resources with PasswordProtection namespace for consistency
- Only use one endpoint to verify the password, instead of two.
- Ensure the user's password is sent on the onRegister click to verify the password is still correct
- Ensure the endpoint /API/v1/projects/{slug} returns the password, and only authenticated users who own the project can view
- Indicator on the Entries table to show the winner on the registration page
- Indicator on the Entries table to show the status of email for the winner
- The newly designed email for Raffle winners now uses MJML email to create the template
- Moved the End At component before the Maximum Entries component
- Remove the icon in the input prefix for "Name your project"
- Require the user to enter an End At date if they want to use the Automated Raffle feature
- The winner's email for Automated Raffled now looks snazzy
Fixes
- Fix Social Proof image not showing on marketing site
Automated Raffles (Beta)
The new automated raffles allows you to:
- configure how many users you want to pick when your raffle ends
- deliver an email to the winners (if the user opted in to receive emails upon completion)
- view who the winnners are in your project dashboard, with a badge next to the winners who's received an email
Improvements
- brand new Checkbox component
- in /pages/[id], onRegister, if notify=true and has email in email input, save this info on the Entry
- on /pages/[id], if project is a raffle display the "opt in for emails" component
- create api endpoint to send email given sendgrid api keys
- change won column to winner in Entry
- if user wants emailing on win, send email using sendgrid
- add won badge on the list of entries in the creators dashboard
- fade out and scale down the Dialog component when clicking outside
- dialog doesnt close after deleteing and entry
- on click outsite, close Add Entry
- Save and cancel button for Add Entry
- have the create project btn primary (blue)
- hide Add Entry on ESC keydown
- hover over entry, cmd+backspace should delete the entry no questions asked
- when closing a popover, animate out
- remove unused routes
- too much padding on the date time components
- demo video of particles on twitter
- tabs component jumps and takes a while to load
- log to sentry on any errors
- animated tick on register
Fixes
- Nftbuds ETH address not showing
- Scroll on mobile for registration page stuck
- no border around registration component
Confetti
New
- Confetti on Registration
- Button Accent Color
- Border Shimmer around the Registration Component
- Share on Twitter
- Copy Link to Clipboard
Improvements
- when unregistered, we automatically remove the user from the page. no refresh needed!
- log important events such as sign out, login through out the Joinlist app
- created a useProvider hook which makes it much easier to connect to twitter, discord, solana, ethereum etc.
- give the website component on the registration more space - it was to close to the description before
- changelog on mobile now looks great. styles for phone were broke.
- popover for the Raffle component is smaller
- the image for the project details now doesnt shift the page when loading
- Show a nice image for Twitter when sharing a Joinlist Registration page.
- added SEO to every Joinlist Registration page
- animated tick when click Copy to Clipboard on the Registration Page
- fade in the images for the changelog
- fade in the creators logo for each registration page
- enbaled manually adding entries
- manually adding entries now accepts subdomain ENS names e.g auth.sam.eth
- when adding an entry, the page scrolls to the latest entry
- imported entries now get given an image
- we now show the last 1,000 entries for a collection
Fixes
- fixed cumulative layout shift on the dashboard when loading the projects
- fixed No Entries on Project. we prefer choosing the Twitter screen name and Twitter image. But if that doesn't exist, we use the ETH address and a placeholder image
Joinlist Discord Bot
Introducing the Joinlist Discord Bot. The bot allows you to verify your community with a simple command /joinlist verify
and /joinlist verify @address
To install the bot:
- Head to your dashboard
- Choose a Project
- Settings > Connections > Discord > Add Bot
Additional discord improvements are in the works to be able to easily:
- choose from a list of roles instead of pasting in the roleId
- automatically assign a role of your choice once a user joins your list.
New
- 2FA (get in touch if you want this enabled!)
- Like and Retweet as a requirement for your Joinlist page.
- Enable/Disable the ability to show a list of Entries for your project in the Dashboard.
Improvements
-
Discord Bot allows you to select which project you want to verify against
-
Show Discord bot is enabled once added
-
Changed name from joinlistbot to Joinlist
-
Improved the explanations on how to use the Discord bot commands
-
removed provider={provider} for the callback on the login page
-
created a ComboBox to easily search for your country code when setting up 2fa
-
created the /api/v1/start-2fa-verification endpoint
-
created the OneTimePassword component which, automatically verifies your number once you enter all numbers (inspired by Stripe and Apple!)
-
disable the 2fa btn if the previous connect hasnt been connected
-
only show 2fa component if twoFactorAuth enabled on project
-
export solana address on the expor
t
-
Unregister to be in the Account dropdown
-
/twitter/users/show?screen_name endpoint
-
Allow users to upload their own accent for the color of the button on the registration page - yet to but adjustable on the dashboard!
-
use the new accent color for the Blur component on the registration page.
-
changed the /verify command to /joinlist verify.
-
/joinlist verify project: 123 address: addressWithNoEntry - we need to display the address even tho the address isn't registered on anything
-
Remove the Skeleton if no Description is given on the Registration Page
-
FAQ on mobile styling had too much padding on the x axis.
-
adding the discord bot closes the popup window once th bot has been added.
Fixes
- Sign message on mobile not redirecting back to app. This was painful to debug
- Phantom Wallet mobile stuck on loading when hit sign in on new wallet
- NFT not detected in wallet once connected
- Hitting the X icon when signed in on Phantom wallet opens up the sign message popup again
- Calendar styles on the EndAt component broke
- discord providerAccountId getting used for the ETH username. disabled the VerifySearchComponent. something to with the useEvent hook.
- fixed scroll on CountryCodeComboBox not working. Radix Dialog has a Scroll Lock on the Overlay. Just remove it
- when logged in, hitting logout on the 2fa button opens the modal again
- Fixed Unable to remove twitter account from Must Follow Twitter
- the profile object of all the twitter accounts gets overwritten with the newly linked twitter account. due to my terrible where clause which wasn't specific enough
- fixed 2fa required but not connected
- Register button not green after registering successfully
- fixed callback on Add Discord Bot goes to localhost
- fixed anybody can delete a project on the delete project endpoint call
- disabled the import addresses for the time being while we fix a bug within it
Verify
Collectors can easily verify they are on a whitelist by pasting in a wallet on an Registration Page.
This feature was created due to collectors being unsure if they're address was succuessfully submitted. A demo of this in action can be seen here
More ways to verify, coming soon:
- Discord command: /verify {address} which lets you know if you're on the list
- Assign a custom Discord Role as soon as you successfully register
New
- Automatically link an account to the user who signed in. No more OAuthAccountNotLinked page!
- Auto-complete for Twitter Accounts
- Delete entry
Improvements
-
apply linebreaks to description
-
OAuthAccountNotLinked page not styled
-
extremely slow loading times on getProject for large projects on the Registration Page
-
create api/v1/twitter/users?q=sam endpoint
-
validate the website url in the Dashboard
-
endAt date doesnt let you save when you initially first change the date
-
export siwe address instead of usernam
e
-
collapse menu items on hover are were cut off to early
-
autofocus on input when open raffle component
-
Solana icon too large on Page
-
no eth symbol on button in Page
-
add verified badge to accounts who are verfied for the Twitter Search User component
-
external link to the twitter profile
-
Set the initial Twitter Search Account to Apple
-
trigger for dialog to be a trash icon on right hand side of the item
-
avatar img not showing for user must own collection in public page
-
on Register click, button goes smaller
-
line height on joinlist home page tagline too big
-
if API is POST, DELETE, PATCH, console.log the request body
-
scroll to Validate wallet element as soon as you hit the register button
-
red/green border on Verify input not showing for useOnRegister
-
change message Must own Doodles to be eligible to User 0x..abc must own Doodles
Fixes
- Having forward slash in slug breaks page
- hitting Security gets an app error
- user has nft, but check not showing they have it
- Input must not be undefined fixed
- unable to Unregister on the Public Page
- unable to import user to project
Joinlist Raffles
Raffles let you randomly select any number of wallets from your list of entries with ease.
To get started:
- Head to your dashboard
- Select a project
- Hit the Raffle button and Choose how many you want to select.
A demo of Raffles can be seen here.
New
- Show twitter users avatar in the list of entries in the creator dashboard.
Improvements
- Connecting with Phantom Mobile browser now connects using their in-app browser.
- Month/Day/Hour/Minute/Second displayed on the countdown for a creators Page, rather than Day/Hour/Minute/Second.
- Show spinners on the button when user is signing a message/connect with Phantom Wallet on mobile.
- Use new Tooltip component when hovering over the age of an entry in the dashboard.
Fixes
- Hitting the X on Phantom Wallet button now logs user out.
- Getting a users Usage (how many entries & projects they have) fixed.
- Hitting the Security tab in Dashboard was getting an Application Error. I was important an icon that didn't exist! DOH!
- "Twitter required but not connected." error. Two twitter account were linked to one user, and the database didnt know which one to choose! deleting the old twitter account fixed this issue. I must have manually changed this in the database.
- use the address of the signed in user for the RainbowKit component in a creators page, rather than the address given by RainbowKit.
Joinlist X Phantom Mobile
In an effort make joining a presale list effortless, we now support connecting with Phantom Wallet on mobile.
Phantom is a leading wallet on Solana with incredible traction, gaining more than 2 million monthly active users in just six months after launch.
We're extremely pleased to support their beautifully crafted mobile wallet on our app!
New
- added a FAQ section to every project page.
- Added Account Dropdown in the dashboard, on the main nav which has links to Dashboard, Logout.
Improvements
- show a loader on the login button as soon as you hit it
- max character length of 40 chars for the project name.
- as soon as you connect, fire a sign message request when using phantom wallet on mobile
- removed the top separator when the ETH connector is disabled
- improve the speed of a projects page by disabling the list of enrties.
- when you try to connect to an account that is already linked to a user, we ask if you want to sign into it instead of just showing a blank error page.
- users can now logout from a projects page!
- only enable the connect button when previous step has been completed/connected
- improved End At screen when the project has closed.
- too much margin-right on the Time component in the End At section of the project details page in your dashboard.
- full length of a collapsible item was getting cut off when hovering
- list item bullet points was showing in the User Must Own Contract Combobox.
- truncate long words in the ComboBox component
- removed unnecessary in the authentication flow (it was code which allowed people to submit a wallet without connecting their website). removed it because it opens us up to become a large vector of attack.
- put all sign message statments in a constants file
- more subtle animation to display the list of entries in the dashboard.
- combobox placeholder text was too dark.
Fixes
- fixed overflowing text on a large FAQ item.
- fixed logout button not working
- fixed disconnect from phantom mobile not working.
- users couldnt save their project and kept getting "Cannot read property 'length' of undefined"
Joinlist is on Mobile
Joining a presale should be seamless on any device. And this week, we're proud to announce that we have integrated RainbowKit to do just that.
This feature was brought to life with the help a recent project we partnered with, DESKHEADS. Deskheads mission is to inspire people to live unconventional lives, and go after their dreams. This message speaks volumes to me personally. I'm extremely happy to have them on board.
To see a demo of this feature in action, head to this tweet.
New
- Creators have the ability to set an End At date for their Page
- Creators have the ability to hide the list of Entries for their Page
Improvements
- Requirements are now labelled "Connections". Each Connection is a provider such as ETH, SOL, Twitter etc. Each Connection has their own unique set of Requirements.
- Added a new collapsible component to display the list of Connections
- The End At component now has small human readable indicators to display when the project is ending, which counts down in minutes
- We now don't get rate limited by the Discord API!
- We now don't require your email when connecting with Twitter and Discord
Fixes
- Images with special characters for their name were not getting saved
- Collectors Role in Discord was not getting picked up, when infact they had the role required to be eligible
- Automatic checking of requirements on your Page was broken
- Collectors were automatically getting registered on as soon as they landed on a Page
- The Page did not detect if a Collector was in a Discord server
Joinlist X Solana
As a creator, you can now collect wallets on Solana. Solana is a fast growing chain and we are happy to support this amazing technology.
To setup:
- head to your dashboard
- create a new project
- Enable solana in Settings > Connectors > Solana
Solana minimum balance, and Solana must require collection coming soon.
Fixes & Improvements
- only login with twitter on login page for creators (creators were scared of connecting their wallet to joinlist, so we alleviated this by only requring you to connect to Twitter)
- switch from using login.xyz, use our authentication method (we needed to customise the sign wallet message and we couldnt do this with login.xyz)
- the connect wallet, then sign message is more clear and explains what happens when signing a message. before it was "please sign message to authenticate". now its "Hi, it's the Joinlist team! Signing this message proves you own this wallet and nothing else. It's the same as getting sent an email to verify you own your email address. Signing this message is safe, free and does not in anyway give joinlist permission to send you transactions."
- provide contact email address in pricing: sam@joinlist.me
- you can now set the max number of entries for each project you create
- fixed: EndAt component doesnt read from the database time
- fixed: Save endAt date in dashboard
- fixed: connect sol account not showing username signed in
- fixed: connecting then regsitering gets invalid icon
- when validating an entry, dont throw the first time a check fails
- fixed: Invalid signature.: 0xDcA1bEa642c7821efbe6a5612B2e130F9d8192CA !== 0xe2BeD39917071ac372dE3B1497206976ac9A9Dd6 (the effect didnt get the updated addresses once the user switched wallets)
- add flavicon
- fixed: register btn not show "you made the cut" after registering
- save the ethereum required/enabled setting
- attempted to figure out how we're going to allow users to input their wallet addresses. this ones a toughie.
- fixed: each provider needs to have a Enabled option at the top of the page.
- collapsible list of connectors in your dashboard (Eth, Solana, Twitter, Discord).
- token.sub gets remove from token when linking a twitter account (we just didnt map the id to the sub in the token)
- fixed: required eth balance not working creators project on mobile (we didnt check balance for ens domains, only hex addresses)
- fixed: useSignAndLoginEth uses hard coded url param in pages/[id]
- fixed: dont prettyHex() ens domains on the public registration page
Require Multiple collections
You can now setup your joinlist page to require users to own multiple nft collections.
This feature comes with two options:
- User must own ALL collections
- User must own ANY collection
Super powerful for collaborating with other communities, and ensuring the quality of your new community members stay high.
Fixes & Improvements
- automatically check if the user owns the required contracts on page load for registration page
- automatically check if the user is following the required twitter accounts as soon as they follow the required people
- you can now delete a project!
- set the maximum number of entries you want to allow on your joinlist
- got a new sexy emai l address: sam@joinlist.me
- users now have an allowance of 1,000 entries across all projects. if you reach this threshold, contact me!
- built GET /api/v1/usage endpoint which gets each persons usage allowance
- built a more user friendly error page when login issues occur (was just a very unpretty 1 line html file before)
- fixed min eth balance check
- fixed min eth balance is too rounded to 2 decimals - not saving the full decimal points
- swap spaces in a url with a dash when saving your handle. e.g typing a a handle of "https://joinlist.me/my cool project" "https://joinlist.me/my-cool-project"
- powered by joinlist btn at the bottom on the public registration page
- beta testing the solana integration!
- nice little loading icon when we're checking if you meet the requirements on the registration page
- re-wrote the endpoint to check requirements - it was super confusing
User must follow multiple twitter accounts
You can now setup your joinlist page so that users of your community must follow certain Twitter accounts to be eligible for your presale.
This one little feature is so powerful. Our first project that launched with us hexi, had ~100 follows before they started their joinlist. And ended up gaining 800+ follows from when they closed their joinlist presale, only 2 days later.
Fixes & Improvements
- large countdown clock on the registration page to show when the joinlist ends
- every person who registered is shown on the registartion page with their twitter pfp and username
- livefeed of other people registering on the public registration page
- added faq to landing page
- show a check/cross aginast each requirement on the registration page
- display the min eth balance requirement on the registration page
- created an easy to use "get started with a project" when a new user logs in
- send user to login page if they aren't logged in
- automatically enable connect twitter if you start adding accounts you require users to follow
- created a video demonstrating how multiple twitter accounts work on twitter
- wrote faq on the security of joinlist
- fixed autocheck account is following required twitter accounts after connecting with twitter
- automatically add the twitter accounts to the pills above the input upon save for must follow twitter account
- we now show the discord role/discord server labels on the registration page - although you can't yet edit these labels. juts get in touch with me if you want to add some labels for your discord
- added a validate=true check for the entries endpoint check does a quick center check on all the requirements, but doesnt submit the entry. used for when we rediect back from discord/twitter to check if the user is following accounts straight away
- created a bunch of hooks lik useBalance, useCollection to make DX life easier
- created /api/balance endpoint to quickly grab the balance of the authenticated user
- added a more clear message to verify the user made the cut once they regsitered