From 6c76e8da7fe976987ab218bed0c54a5f909ad727 Mon Sep 17 00:00:00 2001 From: Roberto Lucas Date: Wed, 28 Aug 2024 14:46:48 -0600 Subject: [PATCH] chore: presale texts revisions (#351) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: add @types/uuid * chore: add @types/uuid * fix(app-lib): tsconfig pkg extends * fix: missing encoding dep * feat: sitemap (#290) * feat: add sitemap * fix: error handling * fix: move common types * fix: update base url in sitemap * Update apps/webapp/app/(routes)/[lang]/blog/[category]/sitemap.ts Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * Update apps/webapp/app/(routes)/[lang]/wallet/sitemap.ts Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * Update apps/webapp/app/(routes)/[lang]/whitepaper/sitemap.ts Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * fix: build error * fix: remove unnecessary async declarative * vendor: add @types/uuid * fix: remove console log for debug * fix: add 'async' to all sitemaps * fix: make ProjectPageParams extends CommonPageParams --------- Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * fix(webapp): UI/UX tweaks and upts from final v1 landing designs (#291) * (webapp)fix:FAQ border radi + muted color * (webapp)fix:newsletter spacing * (webapp)fix:participate spacing and font family * (webapp)fix:header spacing + bitlauncher logo size * (webapp)fix:blog section 4 per row + purple link + gap * (webapp)fix:hero-card spacing * (webapp)fix:auction-card spaces * (webapp)fix:Upcoming grid gap * (webapp)fix:article card - text-left * (webapp)fix:media-card text-start * (webapp)fix:media-section purple link + space * (webapp)fix:participate gap + section font and padding * (webapp)fix:footer links padding + other spacing fix * (webapp)fix:upcoming background circle * (webapp)fix:footer margin-10 * (webapp)fix:upcoming bg shape * (webapp)-andler-changes-request * (webapp)-debug-toggle navigation icon * (webapp)-create-mobile-navigation-context * (webapp)-create-mobile-navigation-context * (webapp)-fix navigation bug - add key * (webapp)-Andler-changes * (webapp)-responsive - upcoming * (webapp)-fix-responsive-whychooseUs * (webapp)-fix-responsive-participate * (webapp)-fix-responsive-media * (webapp)-fix-responsive-articles * (webapp)-responsive-project-header+info+sharebtn * (webapp)-feat-about-base * (webapp)-feat-about-landing-complete * (webapp)-feat-security-updated * (webapp)-fix-steps-padding * fix typo * fix bgHeader type * fix bgHeader type * impr(webapp): layout tweaks * impr(webapp): info pages img asset + css class * fix: bun.lockb --------- Co-authored-by: Roberto Lucas * feat: multichain indexer ( part 1 ) (#293) * chore: update app-contracts * feat: multichain indexer * feat: prod chains * feat: presale wallet * feat: blpl token * feat: blpl token * chore: update bunlock * feat: blpl token * feat: presale evm contribs * feat: blpl token * wip: presale indexer * chore(indexer): fix dockerfile * feat: presale transaction indexing (#296) * feat: report transaction id * feat: save deposits data * feat: save deposits data * feat: read presale transactions * chore: disable view all * feat: update presale deposits ui * feat: display amount raised and contributors * chore: environment chains and tokens * fix(webapp): desktop padding (#297) * feat: multichain presale deposits (#298) * chore: environment chains and tokens * fix: chain switch * fix: chain switch * feat: update nav links (#299) * chore: environment chains and tokens * feat: update nav links * chore: renable swaps service, index token from latest block * feat(webapp): wallet ui updates (#300) * fix: wagmi config * feat(webapp): presale contribution report * feat: realtime presale data * feat: realtime presale data * feat: update dropdown menu * feat(supabase): update schema and types * chore: debug presale token issuance * feat: show issuance trx link on table * impr(webapp): upt mob ver of more info cards (#294) * styles: update mobile version for information cards of home page * styles: use tailwind css variables * styles: add font family futura pt * styles, config: add cornflowerblue variables on tailwind config and update information cards' background * config: update font importation * chore: replace BC with BL * chore: replace bc files with bl files * chore: replace bc files with bl files --------- Co-authored-by: Roberto Lucas * impr(webapp): upt mob ver of more info cards (#294) (#305) * styles: update mobile version for information cards of home page * styles: use tailwind css variables * styles: add font family futura pt * styles, config: add cornflowerblue variables on tailwind config and update information cards' background * config: update font importation * chore: replace BC with BL * chore: replace bc files with bl files * chore: replace bc files with bl files --------- Co-authored-by: Leandro Gavidia Santamaria <93232139+leandrogavidia@users.noreply.github.com> * fix(impr): verify font-style and text wording across landing (#309) * fix(impr): verify font-style across landing * fix(webapp): lufga bold font config * fix(webapp): investor wording to contributor on texts * fix(webapp): investors wording to contributors on texts (plural) * chore(webapp): text, invest wording upt to contribute * config: add multibase custom hook (#310) * config: add multibase custom hook * chore: update multibase hook and session hook * chore: change inverted params * impr(fix): multibase init call --------- Co-authored-by: Roberto Lucas * feat: referral section ui - ver 0.1a (#311) * chore(webapp): update gitignore * chore: update cursor agent rules * fix: action example on cursor rules * fix: action example on cursor rules * fix: action example on cursor rules * feat(webapp): use dynamic loading in homepage (#313) * feat: token issuance with trigger.dev and alchemy hooks - part 1 (#312) * feat: alchemy transfer hooks * feat(trigger): listen token transfers * feat(app-lib): add pino logger * feat(trigger): address activity handler * feat(indexer): security updates and alchemy proxy * fix(webapp): logger bug * chore(indexer): sentry middleware and app config * chore(indexer): cleanup * chore: update bunlock * docs: update readme Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --------- Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * feat(indexer): trigger address activity job (#316) * impr(webapp): check short link gen (#301) * fix(webapp): desktop padding * wip(imp): check user share link * fix(webapp): error var name scope * chore: updating supabase schema & types * feat(webapp): user table short link + session upsert * chore: use biome 🚀 (#317) * chore: use biome * chore: use biome * chore(indexer): verify call with alchemy signing key (#318) * devops(indexer): update dockerfile * chore(indexer): cleanup * chore: update gitignore * debug(indexer): gcloud deployment * debug(indexer): gcloud deployment * debug(indexer): gcloud deployment * debug(indexer): gcloud deployment * debug(indexer): gcloud deployment * fix(trigger): install right trigger.dev dep * chore: august 2nd release [at TEST] (#315) * impr(webapp): upt mob ver of more info cards (#294) * styles: update mobile version for information cards of home page * styles: use tailwind css variables * styles: add font family futura pt * styles, config: add cornflowerblue variables on tailwind config and update information cards' background * config: update font importation * chore: replace BC with BL * chore: replace bc files with bl files * chore: replace bc files with bl files --------- Co-authored-by: Roberto Lucas * fix(impr): verify font-style and text wording across landing (#309) * fix(impr): verify font-style across landing * fix(webapp): lufga bold font config * fix(webapp): investor wording to contributor on texts * fix(webapp): investors wording to contributors on texts (plural) * chore(webapp): text, invest wording upt to contribute * config: add multibase custom hook (#310) * config: add multibase custom hook * chore: update multibase hook and session hook * chore: change inverted params * impr(fix): multibase init call --------- Co-authored-by: Roberto Lucas * feat: referral section ui - ver 0.1a (#311) * chore(webapp): update gitignore * chore: update cursor agent rules * fix: action example on cursor rules * fix: action example on cursor rules * fix: action example on cursor rules * feat(webapp): use dynamic loading in homepage (#313) * feat: token issuance with trigger.dev and alchemy hooks - part 1 (#312) * feat: alchemy transfer hooks * feat(trigger): listen token transfers * feat(app-lib): add pino logger * feat(trigger): address activity handler * feat(indexer): security updates and alchemy proxy * fix(webapp): logger bug * chore(indexer): sentry middleware and app config * chore(indexer): cleanup * chore: update bunlock * docs: update readme Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --------- Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * feat(indexer): trigger address activity job (#316) * impr(webapp): check short link gen (#301) * fix(webapp): desktop padding * wip(imp): check user share link * fix(webapp): error var name scope * chore: updating supabase schema & types * feat(webapp): user table short link + session upsert * chore: use biome 🚀 (#317) * chore: use biome * chore: use biome * chore(indexer): verify call with alchemy signing key (#318) * devops(indexer): update dockerfile * chore(indexer): cleanup * chore: update gitignore * debug(indexer): gcloud deployment * debug(indexer): gcloud deployment * debug(indexer): gcloud deployment * debug(indexer): gcloud deployment * debug(indexer): gcloud deployment * fix(trigger): install right trigger.dev dep --------- Co-authored-by: Leandro Gavidia Santamaria <93232139+leandrogavidia@users.noreply.github.com> Co-authored-by: Gabo Esquivel Co-authored-by: Gabo Esquivel Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * fix: merge typo * fix: tailwind font config * fix(indexer): trust proxy * feat: token issuance trigger part 2 (#321) * chore(alchemy): use gcloud endpoint * docs(alchemy): update readme file * docs(indexer): update readme file * debug(indexer): gcloud automated deployment * chore(alchemy): env values validation * chore(indexer): improve logging * chore(indexer): improve logging * chore(indexer): stringify all logs * debug(indexer): disable alchemy signature validation * debug(indexer): disable alchemy signature validation * chore(indexer): validate env and use trigger secret * debug(faucet): save dist/ empty folder in git * chore: update deps * chore: improve env validations * fix(alchemy): wrong import * chore(indexer): improve logging * debug(indexer): alchemy webhook handler * debug(indexer): disable helmet * debug(indexer): alchemy hook handler * debug(indexer): alchemy hook handler * debug(indexer): alchemy hook handler * debug(indexer): alchemy hook handler * feat(indexer): alchemy signature middleware * feat(indexer): validate alchemy signature * chore(indexer): security improvements (#323) * chore(indexer): disable alchemy validation * feat: presale token issuance part 3 (#325) * chore(alchemy): export types * chore(indexer): log process event id * chore(indexer): log process event id * chore: prod network conig, validate networks * wip(indexer): validate before triggering * chore: add try catch Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * chore: clean up * devops(indexer): update dockerfile * chore: format code * devops: remove lhci reports * fix(indexer): wrong import * feat(trigger): transfer blpl token (#327) * feat(trigger): transfer blpl token * docs(trigger): token issuance jsdocs Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --------- Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * devops(indexer): update dockerfile * chore: remove type:module (#329) * chore: remove type:module * chore: remove type:module * devops(indexer): test deployment * devops(indexer): test deployment * chore(supabase): use module * feat(trigger): presale token issuance * chore: format * chore: use type:module for monorepo * impr(webapp): add multibase provider (#326) * config: create multibase provider * chore: update multibase env variable * impr(webapp): UI Update (#314) * (wepapp)impr:landing distribution + filenames * (wepapp)impr:auction card badge * (wepapp)impr:steps pading + new text-size * (wepapp)impr:text-size * (wepapp)impr:refactored about us section * (wepapp)impr:new tittles learning section * (wepapp)impr:security section * (wepapp)impr:tittle style and fonts * (wepapp)impr:responsive impr * fix:about section text-18 instead of text-sm * fix:security responsive * fix:hero padding * fix:Final Mobil Tweaks * impr(webapp): landing heros + mob-nav spacing * impr(webapp): landing learn section updated blog links * fix(webapp): info text foreground color * impr(webapp): landing responsiveness * imp(webapp): 3 steps needed responsiveness * chore(webapp): rm duplicate component --------- Co-authored-by: Roberto Lucas * feat: security updates (#331) * feat(indexer): validate right usdt,usdc address * feat(indexer): wait for finality and trx log * fix(indexer): wrong import * chore(indexer): fix build * chore(webapp): format * feat(webapp): bitlauncher blog category + blog tweaks (#324) * wip: static blog files upt * fix(webapp): blog article file gen + article ui tweaks * chore(webapp): app ver upt + cms gen script * docs: upt cms-ql.sh Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * impr(webapp): upt /services/datocms/datocms-blog.service.ts coderabbitai suggestion. Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * impr(webapp): upt /services/datocms/datocms-blog.service.ts coderabbitai suggestion. Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix(webapp): app build, missing file --------- Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * chore: format files * fix(webapp): cached files error catch * impr(webapp): static blog file error catch * fix(webapp): static cached file chk * feat: supabase schema and webapp updates (#335) * feat(indexer): add address registration validation * feat: update database schema to support presales * feat: repo/tokens (#336) * chore: update repo packages (#338) * feat: stable coin selector * feat: presale ux ui * chore: repo/contracts pkg * chore: repo/utils pkg * chore: repo/tsconfig pkg * chore: repo/alchemy pkg * chore: repo/jobs pkg * chore: repo/supabase pkg * docs: update readme * chore: update bunlock * chore(indexer): alchemy webhook Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * docs: update readme Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * docs: update readme Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * chore(alchemy): invert ternary Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * chore: not nullable values, format code * chore: update node:crypto Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * feat(indexer): alchemy signature validation Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * chore: fix build (#339) * feat: validate user registration on event proxy (#340) * chore: fix imports * feat(indexer): validate user is registered * feat: add presale deposit checks (#341) * feat(indexer): is registered address * feat(indexer): validate amount and timing * wip(webapp): update project, presale and auction pages * chore(webapp): improve error handling Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * feat: realtime presale data (#342) * feat: real time presale data * feat: real time presale data * fix(webapp): header margin (#343) * webapp:fix margin top * webapp:add header tag * webapp:fix margin top * webapp:add md top * webapp:add md top * webapp:fix project tittle + pills responsive * chore: august 3rd release [pre-prod] (#334) * impr(webapp): upt mob ver of more info cards (#294) * styles: update mobile version for information cards of home page * styles: use tailwind css variables * styles: add font family futura pt * styles, config: add cornflowerblue variables on tailwind config and update information cards' background * config: update font importation * chore: replace BC with BL * chore: replace bc files with bl files * chore: replace bc files with bl files --------- Co-authored-by: Roberto Lucas * fix(impr): verify font-style and text wording across landing (#309) * fix(impr): verify font-style across landing * fix(webapp): lufga bold font config * fix(webapp): investor wording to contributor on texts * fix(webapp): investors wording to contributors on texts (plural) * chore(webapp): text, invest wording upt to contribute * config: add multibase custom hook (#310) * config: add multibase custom hook * chore: update multibase hook and session hook * chore: change inverted params * impr(fix): multibase init call --------- Co-authored-by: Roberto Lucas * feat: referral section ui - ver 0.1a (#311) * chore(webapp): update gitignore * chore: update cursor agent rules * fix: action example on cursor rules * fix: action example on cursor rules * fix: action example on cursor rules * feat(webapp): use dynamic loading in homepage (#313) * feat: token issuance with trigger.dev and alchemy hooks - part 1 (#312) * feat: alchemy transfer hooks * feat(trigger): listen token transfers * feat(app-lib): add pino logger * feat(trigger): address activity handler * feat(indexer): security updates and alchemy proxy * fix(webapp): logger bug * chore(indexer): sentry middleware and app config * chore(indexer): cleanup * chore: update bunlock * docs: update readme Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --------- Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * feat(indexer): trigger address activity job (#316) * impr(webapp): check short link gen (#301) * fix(webapp): desktop padding * wip(imp): check user share link * fix(webapp): error var name scope * chore: updating supabase schema & types * feat(webapp): user table short link + session upsert * chore: use biome 🚀 (#317) * chore: use biome * chore: use biome * chore(indexer): verify call with alchemy signing key (#318) * devops(indexer): update dockerfile * chore(indexer): cleanup * chore: update gitignore * debug(indexer): gcloud deployment * debug(indexer): gcloud deployment * debug(indexer): gcloud deployment * debug(indexer): gcloud deployment * debug(indexer): gcloud deployment * fix(trigger): install right trigger.dev dep * fix(indexer): trust proxy * feat: token issuance trigger part 2 (#321) * chore(alchemy): use gcloud endpoint * docs(alchemy): update readme file * docs(indexer): update readme file * debug(indexer): gcloud automated deployment * chore(alchemy): env values validation * chore(indexer): improve logging * chore(indexer): improve logging * chore(indexer): stringify all logs * debug(indexer): disable alchemy signature validation * debug(indexer): disable alchemy signature validation * chore(indexer): validate env and use trigger secret * debug(faucet): save dist/ empty folder in git * chore: update deps * chore: improve env validations * fix(alchemy): wrong import * chore(indexer): improve logging * debug(indexer): alchemy webhook handler * debug(indexer): disable helmet * debug(indexer): alchemy hook handler * debug(indexer): alchemy hook handler * debug(indexer): alchemy hook handler * debug(indexer): alchemy hook handler * feat(indexer): alchemy signature middleware * feat(indexer): validate alchemy signature * chore(indexer): security improvements (#323) * chore(indexer): disable alchemy validation * feat: presale token issuance part 3 (#325) * chore(alchemy): export types * chore(indexer): log process event id * chore(indexer): log process event id * chore: prod network conig, validate networks * wip(indexer): validate before triggering * chore: add try catch Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * chore: clean up * devops(indexer): update dockerfile * chore: format code * devops: remove lhci reports * fix(indexer): wrong import * feat(trigger): transfer blpl token (#327) * feat(trigger): transfer blpl token * docs(trigger): token issuance jsdocs Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --------- Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * devops(indexer): update dockerfile * chore: remove type:module (#329) * chore: remove type:module * chore: remove type:module * devops(indexer): test deployment * devops(indexer): test deployment * chore(supabase): use module * feat(trigger): presale token issuance * chore: format * chore: use type:module for monorepo * impr(webapp): add multibase provider (#326) * config: create multibase provider * chore: update multibase env variable * impr(webapp): UI Update (#314) * (wepapp)impr:landing distribution + filenames * (wepapp)impr:auction card badge * (wepapp)impr:steps pading + new text-size * (wepapp)impr:text-size * (wepapp)impr:refactored about us section * (wepapp)impr:new tittles learning section * (wepapp)impr:security section * (wepapp)impr:tittle style and fonts * (wepapp)impr:responsive impr * fix:about section text-18 instead of text-sm * fix:security responsive * fix:hero padding * fix:Final Mobil Tweaks * impr(webapp): landing heros + mob-nav spacing * impr(webapp): landing learn section updated blog links * fix(webapp): info text foreground color * impr(webapp): landing responsiveness * imp(webapp): 3 steps needed responsiveness * chore(webapp): rm duplicate component --------- Co-authored-by: Roberto Lucas * feat: security updates (#331) * feat(indexer): validate right usdt,usdc address * feat(indexer): wait for finality and trx log * fix(indexer): wrong import * chore(indexer): fix build * chore(webapp): format * feat(webapp): bitlauncher blog category + blog tweaks (#324) * wip: static blog files upt * fix(webapp): blog article file gen + article ui tweaks * chore(webapp): app ver upt + cms gen script * docs: upt cms-ql.sh Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * impr(webapp): upt /services/datocms/datocms-blog.service.ts coderabbitai suggestion. Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * impr(webapp): upt /services/datocms/datocms-blog.service.ts coderabbitai suggestion. Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix(webapp): app build, missing file --------- Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * chore: format files * fix(webapp): cached files error catch * impr(webapp): static blog file error catch * fix(webapp): static cached file chk * feat: supabase schema and webapp updates (#335) * feat(indexer): add address registration validation * feat: update database schema to support presales * feat: repo/tokens (#336) * chore: update repo packages (#338) * feat: stable coin selector * feat: presale ux ui * chore: repo/contracts pkg * chore: repo/utils pkg * chore: repo/tsconfig pkg * chore: repo/alchemy pkg * chore: repo/jobs pkg * chore: repo/supabase pkg * docs: update readme * chore: update bunlock * chore(indexer): alchemy webhook Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * docs: update readme Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * docs: update readme Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * chore(alchemy): invert ternary Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * chore: not nullable values, format code * chore: update node:crypto Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * feat(indexer): alchemy signature validation Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * chore: fix build (#339) * feat: validate user registration on event proxy (#340) * chore: fix imports * feat(indexer): validate user is registered * feat: add presale deposit checks (#341) * feat(indexer): is registered address * feat(indexer): validate amount and timing * wip(webapp): update project, presale and auction pages * chore(webapp): improve error handling Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * feat: realtime presale data (#342) * feat: real time presale data * feat: real time presale data * fix(webapp): header margin (#343) * webapp:fix margin top * webapp:add header tag * webapp:fix margin top * webapp:add md top * webapp:add md top * webapp:fix project tittle + pills responsive --------- Co-authored-by: Leandro Gavidia Santamaria <93232139+leandrogavidia@users.noreply.github.com> Co-authored-by: Gabo Esquivel Co-authored-by: Gabo Esquivel Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Brandon Fernández <31634868+Bran18@users.noreply.github.com> * chore(fix): update apps/trigger package.json dep * fix: cms gen merged files + use-session table upt + trigger/tsconfig upt * fix: registration logic and indexer checks (#347) * feat(indexer): check if address already bought * fix(webapp): registration logic * chore: update bunlock * fix(webapp): arrow icon * fix(webapp): arrow icon * feat: upsert accounts table on login * fix(webapp): move accounts to session hook * feat: webapp/hotfix bl project status tag (#348) * fix(webapp): tablet/small-screen header breakpoint * impr(webapp): project page hero + blog links upt * fix(webapp): project badge text upt * content(webapp): token sale date tbd * fix(webapp): hero title size (#350) * fix(webapp): hero title size * impr(webapp): share link toaster msg * chore: presale hardcoded txt tweak --------- Co-authored-by: Gabo Esquivel Co-authored-by: Nathanael Liu Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Co-authored-by: Brandon Fernández <31634868+Bran18@users.noreply.github.com> Co-authored-by: Leandro Gavidia Santamaria <93232139+leandrogavidia@users.noreply.github.com> Co-authored-by: Gabo Esquivel Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .../[lang]/[project]/presale/page.tsx | 2 +- .../(routes)/[lang]/blog/[category]/page.tsx | 2 +- apps/webapp/app/(routes)/[lang]/layout.tsx | 2 +- .../[lang]/learn/batch-auctions/page.tsx | 1 - .../(routes)/[lang]/learn/security/page.tsx | 1 - .../app/(routes)/[lang]/whitepaper/page.tsx | 2 +- apps/webapp/app/globals.css | 2 +- .../routes/home/auction-card-buttons.tsx | 2 + .../routes/project/copy-shorlink.tsx | 26 +- .../routes/project/project-info.tsx | 12 +- .../routes/project/project-share.tsx | 2 + apps/webapp/components/shared/bg-header.tsx | 9 +- .../blog/bitlauncher/bitlauncher-index.json | 252 ++++++++++-------- .../dictionaries/en/blog/blog-index.json | 224 ++++++++++++---- 14 files changed, 349 insertions(+), 190 deletions(-) diff --git a/apps/webapp/app/(routes)/[lang]/[project]/presale/page.tsx b/apps/webapp/app/(routes)/[lang]/[project]/presale/page.tsx index e4d95579..8ae267b5 100644 --- a/apps/webapp/app/(routes)/[lang]/[project]/presale/page.tsx +++ b/apps/webapp/app/(routes)/[lang]/[project]/presale/page.tsx @@ -31,7 +31,7 @@ export default async function ProjectPage({ params }: ProjectPageProps) { diff --git a/apps/webapp/app/(routes)/[lang]/blog/[category]/page.tsx b/apps/webapp/app/(routes)/[lang]/blog/[category]/page.tsx index dc29c8e0..a5e277a1 100644 --- a/apps/webapp/app/(routes)/[lang]/blog/[category]/page.tsx +++ b/apps/webapp/app/(routes)/[lang]/blog/[category]/page.tsx @@ -27,7 +27,7 @@ export default async function Page(props: CategoryPageProps) { heading={pageSeo.title} subheading={pageSeo.description} className="!text-6xl [&_+_div]:md:!text-2xl [&_+_div]:md:!py-0" - imageSrc="/images/blog/temp-bg-concept.webp" + background="about" />
diff --git a/apps/webapp/app/(routes)/[lang]/layout.tsx b/apps/webapp/app/(routes)/[lang]/layout.tsx index 95da635f..9e27a2be 100644 --- a/apps/webapp/app/(routes)/[lang]/layout.tsx +++ b/apps/webapp/app/(routes)/[lang]/layout.tsx @@ -75,7 +75,7 @@ export default async function RootLayout({ disableTransitionOnChange >
- +
diff --git a/apps/webapp/app/(routes)/[lang]/learn/security/page.tsx b/apps/webapp/app/(routes)/[lang]/learn/security/page.tsx index c9d94322..8362bf73 100644 --- a/apps/webapp/app/(routes)/[lang]/learn/security/page.tsx +++ b/apps/webapp/app/(routes)/[lang]/learn/security/page.tsx @@ -17,7 +17,6 @@ export default async function SecurityTips({ params }: CommonPageProps) {
diff --git a/apps/webapp/app/(routes)/[lang]/whitepaper/page.tsx b/apps/webapp/app/(routes)/[lang]/whitepaper/page.tsx index d8b1c3e9..068822ae 100644 --- a/apps/webapp/app/(routes)/[lang]/whitepaper/page.tsx +++ b/apps/webapp/app/(routes)/[lang]/whitepaper/page.tsx @@ -14,7 +14,7 @@ export default async function BitlauncherWhitePaper({
diff --git a/apps/webapp/app/globals.css b/apps/webapp/app/globals.css index ebdbeaeb..506d9977 100644 --- a/apps/webapp/app/globals.css +++ b/apps/webapp/app/globals.css @@ -309,7 +309,7 @@ iframe[title="reCAPTCHA"], /* Heading in About - Security - Whitepaper */ .sectionsHeading { - @apply text-[4.188rem] font-normal leading-tight md:text-[4.3504rem] lg:text-[5.438rem]; + @apply text-[3.5rem] sm:text-[4.2rem] font-bold leading-[1.1] lg:text-[4.5rem]; } /* Subheading in About - Security - Whitepaper */ diff --git a/apps/webapp/components/routes/home/auction-card-buttons.tsx b/apps/webapp/components/routes/home/auction-card-buttons.tsx index 341636cc..563570be 100644 --- a/apps/webapp/components/routes/home/auction-card-buttons.tsx +++ b/apps/webapp/components/routes/home/auction-card-buttons.tsx @@ -64,6 +64,8 @@ export function AuctionCardButtons({ project }: { project: Project }) { { + if (!session?.account) { + return { data: null, error: 'Please log in to share this project and refer friends.' } + } + const { data, error } = await supabase .from('account') // select shareLink from user where linkPath = 'https://bitlauncher.ai${window.location.pathname}${param}' .select('account, short_link') - .eq('account', session?.account || '') + .eq('account', session?.account) .single() - if (error) { - console.error('Failed to check share link:', error) - setStatus('error') - - return { data: null, error } - } - let returnData = data - if (!data.short_link) { + if (!returnData?.short_link) { const { data: dubCoShortLink, error: dubCoError } = await generateShortLink( `https://bitlauncher.ai${window.location.pathname}${param}`, @@ -48,7 +46,7 @@ export function CopyShortlinkIcon() { return { data: null, error: dubCoError } } - await supabase.from('account').upsert( + const { data: user } = await supabase.from('account').upsert( { account: session?.account || '', short_link: dubCoShortLink?.shortLink, @@ -57,8 +55,10 @@ export function CopyShortlinkIcon() { onConflict: 'account', }, ) + .select('*') + .single() - returnData = { ...data, short_link: dubCoShortLink?.shortLink as string } + returnData = { account: user?.account as string, short_link: dubCoShortLink?.shortLink || null } setTimeout(() => setStatus('default'), 5000) } @@ -71,13 +71,15 @@ export function CopyShortlinkIcon() { try { const { data, error } = await checkShareLink() - if (error || !data) throw new Error(error?.message || 'Unknown error') + if (error || !data) throw new Error(error || 'Unknown error') navigator.clipboard.writeText(data?.short_link || '') setStatus('copied') + toast.success('Link copied to clipboard!') setTimeout(() => setStatus('default'), 5000) } catch (error) { console.error('Failed to copy share link:', error) setStatus('error') + toast.error((error as Error).message) setTimeout(() => setStatus('default'), 5000) } } diff --git a/apps/webapp/components/routes/project/project-info.tsx b/apps/webapp/components/routes/project/project-info.tsx index 4aa94271..92115fb2 100644 --- a/apps/webapp/components/routes/project/project-info.tsx +++ b/apps/webapp/components/routes/project/project-info.tsx @@ -22,7 +22,9 @@ function ListItem({ label, value }: ItemProps) {

{label}: - {typeof value === 'string' ? value : null} + + {typeof value === 'string' ? value : null} +

) @@ -37,12 +39,12 @@ export function ProjectInfo({ }) { const fields: Array> = [ [ - { label: 'Presale', value: '9/15/24 - 10/15/24' }, + { label: 'Presale', value: '9/15/24 - 11/15/24' }, { label: 'Fundraising Goal', value: '$150,000' }, { label: 'Max Allocation', value: '$1,500' }, ], [ - { label: 'Token Sale', value: '11/2/24 - 11/30/24' }, + { label: 'Token Sale', value: 'TBD' }, { label: 'Fundraising Goal', value: '$250,000' }, { label: 'Max Allocation', value: '$10,000' }, ], @@ -65,7 +67,9 @@ export function ProjectInfo({ className="flex w-full min-w-[250px] flex-col justify-evenly rounded-sm bg-muted px-4 py-3 md:min-w-[203px]" > {items.map((item, ik) => ( - + {ik < items.length - 1 && ( diff --git a/apps/webapp/components/routes/project/project-share.tsx b/apps/webapp/components/routes/project/project-share.tsx index b8aa8f65..58e0bb61 100644 --- a/apps/webapp/components/routes/project/project-share.tsx +++ b/apps/webapp/components/routes/project/project-share.tsx @@ -39,6 +39,8 @@ export function ProjectShare({ project }: { project: Project }) { className={cn( buttonVariants({ variant: 'outline', size: 'icon' }), 'relative size-[50px] rounded-full px-0 py-0 pr-1', + // ? Currently, Bitlauncher Community does not have a Telegram group (got blocked). Only Bitcash but the legacy channel. + { 'pointer-events-none cursor-not-allowed opacity-50': project.id === 1 }, )} target="_blank" rel="noopener noreferrer" diff --git a/apps/webapp/components/shared/bg-header.tsx b/apps/webapp/components/shared/bg-header.tsx index 989baa80..8d972075 100644 --- a/apps/webapp/components/shared/bg-header.tsx +++ b/apps/webapp/components/shared/bg-header.tsx @@ -5,11 +5,11 @@ import Balancer from 'react-wrap-balancer' export function BgHeader({ heading, subheading, - imageSrc, + background = 'security', className, }: { heading: string - imageSrc: string + background?: 'security' | 'whitepaper' | 'about' subheading?: string className?: string }) { @@ -22,7 +22,10 @@ export function BgHeader({
{subheading}
-
+
diff --git a/apps/webapp/dictionaries/en/blog/bitlauncher/bitlauncher-index.json b/apps/webapp/dictionaries/en/blog/bitlauncher/bitlauncher-index.json index 6cf7321d..0f7e6ada 100755 --- a/apps/webapp/dictionaries/en/blog/bitlauncher/bitlauncher-index.json +++ b/apps/webapp/dictionaries/en/blog/bitlauncher/bitlauncher-index.json @@ -1,54 +1,68 @@ { "sections": [ { - "name": "launchpad", - "slug": "launchpad", + "name": "how_to", + "slug": "how_to", "articles": [ { - "id": "TBAOoPr9SPihQxeeKTGUQw", - "topics": ["launchpad", "investment", "fundraising"], - "title": "What is a Public Token Presale?", - "slug": "what-is-a-public-token-presale", + "id": "W8caLxKNTdahoemkXQT_sg", + "topics": [ + "how_to", + "launchpad", + "dao" + ], + "title": "Welcome to the Bitlauncher Presale Starting September 15th!", + "slug": "welcome-to-the-bitlauncher-presale-starting-september-15th", "authorName": "Jun Dam", "authorPicture": { "url": "https://www.datocms-assets.com/101962/1686758812-jdamx170-removebg-preview.png" }, - "_publishedAt": "2024-08-23T06:22:36+01:00", - "description": "Public token presales provide early investment chances at fixed prices before main sales. They help projects raise pre-launch funds, gauge interest, and build community, offering potential benefits for participants.", + "_publishedAt": "2024-08-28T01:36:20+01:00", + "description": "Bitlauncher Presale begins September 15th, 2024, offering a unique opportunity to invest in the intersection of AI and cryptocurrency. Secure your presale tokens at $1 each and be part of this transformative venture.", "thumbnail": { - "url": "https://www.datocms-assets.com/101962/1724356923-bl-thumbnail.png" + "url": "https://www.datocms-assets.com/101962/1724390484-bitlauncherpresale2.jpg" }, "contentBlock": [], "seo": { - "description": "Public token presales offer early investment opportunities before main sale, helping projects raise pre-launch capital.", - "title": "What is a Public Token Presale?", + "description": "Bitlauncher Presale starts September 15th, 2024. Join the AI-crypto revolution by securing presale tokens at $1 each.", + "title": "Bitlauncher Presale Starting August 31st!", "twitterCard": "summary_large_image", "image": { - "width": 1797, - "height": 603, + "width": 1312, + "height": 736, "title": null, "alt": null, - "url": "https://www.datocms-assets.com/101962/1724356923-bl-thumbnail.png" + "url": "https://www.datocms-assets.com/101962/1724390484-bitlauncherpresale2.jpg" } } - }, + } + ] + }, + { + "name": "launchpad", + "slug": "launchpad", + "articles": [ { "id": "W8caLxKNTdahoemkXQT_sg", - "topics": ["how_to", "launchpad", "dao"], - "title": "Welcome to the Bitlauncher Presale Starting August 31st!", - "slug": "welcome-to-the-bitlauncher-presale-starting-august-31st", + "topics": [ + "how_to", + "launchpad", + "dao" + ], + "title": "Welcome to the Bitlauncher Presale Starting September 15th!", + "slug": "welcome-to-the-bitlauncher-presale-starting-september-15th", "authorName": "Jun Dam", "authorPicture": { "url": "https://www.datocms-assets.com/101962/1686758812-jdamx170-removebg-preview.png" }, - "_publishedAt": "2024-08-23T06:22:18+01:00", - "description": "Bitlauncher Presale begins August 31st, offering a unique opportunity to invest in the intersection of AI and cryptocurrency. Secure your presale tokens at $1 each and be part of this transformative venture.", + "_publishedAt": "2024-08-28T01:36:20+01:00", + "description": "Bitlauncher Presale begins September 15th, 2024, offering a unique opportunity to invest in the intersection of AI and cryptocurrency. Secure your presale tokens at $1 each and be part of this transformative venture.", "thumbnail": { "url": "https://www.datocms-assets.com/101962/1724390484-bitlauncherpresale2.jpg" }, "contentBlock": [], "seo": { - "description": "Bitlauncher Presale starts August 31st. Join the AI-crypto revolution by securing presale tokens at $1 each.", + "description": "Bitlauncher Presale starts September 15th, 2024. Join the AI-crypto revolution by securing presale tokens at $1 each.", "title": "Bitlauncher Presale Starting August 31st!", "twitterCard": "summary_large_image", "image": { @@ -60,16 +74,52 @@ } } }, + { + "id": "TBAOoPr9SPihQxeeKTGUQw", + "topics": [ + "launchpad", + "investment", + "fundraising" + ], + "title": "What is a Public Token Presale?", + "slug": "what-is-a-public-token-presale", + "authorName": "Jun Dam", + "authorPicture": { + "url": "https://www.datocms-assets.com/101962/1686758812-jdamx170-removebg-preview.png" + }, + "_publishedAt": "2024-08-27T05:32:23+01:00", + "description": "Public token presales provide early investment chances at fixed prices before main sales. They help projects raise pre-launch funds, gauge interest, and build community, offering potential benefits for participants.", + "thumbnail": { + "url": "https://www.datocms-assets.com/101962/1724733057-pre-sale-bitlauncher-blog.png" + }, + "contentBlock": [], + "seo": { + "description": "Public token presales offer early investment opportunities before main sale, helping projects raise pre-launch capital.", + "title": "What is a Public Token Presale?", + "twitterCard": "summary_large_image", + "image": { + "width": 1312, + "height": 736, + "title": null, + "alt": null, + "url": "https://www.datocms-assets.com/101962/1724733057-pre-sale-bitlauncher-blog.png" + } + } + }, { "id": "ecAGoOkaROa09DcoVKyOCA", - "topics": ["dao", "analysis", "launchpad"], + "topics": [ + "dao", + "analysis", + "launchpad" + ], "title": "What is the Bitlauncher ($BL) Token?", "slug": "what-is-the-bitlauncher-bl-token", "authorName": "Jun Dam", "authorPicture": { "url": "https://www.datocms-assets.com/101962/1686758812-jdamx170-removebg-preview.png" }, - "_publishedAt": "2024-08-23T06:12:11+01:00", + "_publishedAt": "2024-08-27T05:06:47+01:00", "description": "Bitlauncher's public token presale offers early investment opportunities in AI and blockchain projects. Secure tokens at $1 each, contribute to pre-launch funding, and join the growing community.", "thumbnail": { "url": "https://www.datocms-assets.com/101962/1724389825-whatisbltoken1.webp" @@ -91,61 +141,63 @@ ] }, { - "name": "investment", - "slug": "investment", + "name": "dao", + "slug": "dao", "articles": [ { - "id": "TBAOoPr9SPihQxeeKTGUQw", - "topics": ["launchpad", "investment", "fundraising"], - "title": "What is a Public Token Presale?", - "slug": "what-is-a-public-token-presale", + "id": "W8caLxKNTdahoemkXQT_sg", + "topics": [ + "how_to", + "launchpad", + "dao" + ], + "title": "Welcome to the Bitlauncher Presale Starting September 15th!", + "slug": "welcome-to-the-bitlauncher-presale-starting-september-15th", "authorName": "Jun Dam", "authorPicture": { "url": "https://www.datocms-assets.com/101962/1686758812-jdamx170-removebg-preview.png" }, - "_publishedAt": "2024-08-23T06:22:36+01:00", - "description": "Public token presales provide early investment chances at fixed prices before main sales. They help projects raise pre-launch funds, gauge interest, and build community, offering potential benefits for participants.", + "_publishedAt": "2024-08-28T01:36:20+01:00", + "description": "Bitlauncher Presale begins September 15th, 2024, offering a unique opportunity to invest in the intersection of AI and cryptocurrency. Secure your presale tokens at $1 each and be part of this transformative venture.", "thumbnail": { - "url": "https://www.datocms-assets.com/101962/1724356923-bl-thumbnail.png" + "url": "https://www.datocms-assets.com/101962/1724390484-bitlauncherpresale2.jpg" }, "contentBlock": [], "seo": { - "description": "Public token presales offer early investment opportunities before main sale, helping projects raise pre-launch capital.", - "title": "What is a Public Token Presale?", + "description": "Bitlauncher Presale starts September 15th, 2024. Join the AI-crypto revolution by securing presale tokens at $1 each.", + "title": "Bitlauncher Presale Starting August 31st!", "twitterCard": "summary_large_image", "image": { - "width": 1797, - "height": 603, + "width": 1312, + "height": 736, "title": null, "alt": null, - "url": "https://www.datocms-assets.com/101962/1724356923-bl-thumbnail.png" + "url": "https://www.datocms-assets.com/101962/1724390484-bitlauncherpresale2.jpg" } } - } - ] - }, - { - "name": "fundraising", - "slug": "fundraising", - "articles": [ + }, { - "id": "TBAOoPr9SPihQxeeKTGUQw", - "topics": ["launchpad", "investment", "fundraising"], - "title": "What is a Public Token Presale?", - "slug": "what-is-a-public-token-presale", + "id": "ecAGoOkaROa09DcoVKyOCA", + "topics": [ + "dao", + "analysis", + "launchpad" + ], + "title": "What is the Bitlauncher ($BL) Token?", + "slug": "what-is-the-bitlauncher-bl-token", "authorName": "Jun Dam", "authorPicture": { "url": "https://www.datocms-assets.com/101962/1686758812-jdamx170-removebg-preview.png" }, - "_publishedAt": "2024-08-23T06:22:36+01:00", - "description": "Public token presales provide early investment chances at fixed prices before main sales. They help projects raise pre-launch funds, gauge interest, and build community, offering potential benefits for participants.", + "_publishedAt": "2024-08-27T05:06:47+01:00", + "description": "Bitlauncher's public token presale offers early investment opportunities in AI and blockchain projects. Secure tokens at $1 each, contribute to pre-launch funding, and join the growing community.", "thumbnail": { - "url": "https://www.datocms-assets.com/101962/1724356923-bl-thumbnail.png" + "url": "https://www.datocms-assets.com/101962/1724389825-whatisbltoken1.webp" }, "contentBlock": [], "seo": { - "description": "Public token presales offer early investment opportunities before main sale, helping projects raise pre-launch capital.", - "title": "What is a Public Token Presale?", + "description": "Bitlauncher ($BL) token: Powering the AI-focused launchpad, enabling governance, transactions, and ecosystem growth.", + "title": "What is the Bitlauncher ($BL) Token?", "twitterCard": "summary_large_image", "image": { "width": 1797, @@ -159,96 +211,76 @@ ] }, { - "name": "how_to", - "slug": "how_to", + "name": "investment", + "slug": "investment", "articles": [ { - "id": "W8caLxKNTdahoemkXQT_sg", - "topics": ["how_to", "launchpad", "dao"], - "title": "Welcome to the Bitlauncher Presale Starting August 31st!", - "slug": "welcome-to-the-bitlauncher-presale-starting-august-31st", + "id": "TBAOoPr9SPihQxeeKTGUQw", + "topics": [ + "launchpad", + "investment", + "fundraising" + ], + "title": "What is a Public Token Presale?", + "slug": "what-is-a-public-token-presale", "authorName": "Jun Dam", "authorPicture": { "url": "https://www.datocms-assets.com/101962/1686758812-jdamx170-removebg-preview.png" }, - "_publishedAt": "2024-08-23T06:22:18+01:00", - "description": "Bitlauncher Presale begins August 31st, offering a unique opportunity to invest in the intersection of AI and cryptocurrency. Secure your presale tokens at $1 each and be part of this transformative venture.", + "_publishedAt": "2024-08-27T05:32:23+01:00", + "description": "Public token presales provide early investment chances at fixed prices before main sales. They help projects raise pre-launch funds, gauge interest, and build community, offering potential benefits for participants.", "thumbnail": { - "url": "https://www.datocms-assets.com/101962/1724390484-bitlauncherpresale2.jpg" + "url": "https://www.datocms-assets.com/101962/1724733057-pre-sale-bitlauncher-blog.png" }, "contentBlock": [], "seo": { - "description": "Bitlauncher Presale starts August 31st. Join the AI-crypto revolution by securing presale tokens at $1 each.", - "title": "Bitlauncher Presale Starting August 31st!", + "description": "Public token presales offer early investment opportunities before main sale, helping projects raise pre-launch capital.", + "title": "What is a Public Token Presale?", "twitterCard": "summary_large_image", "image": { "width": 1312, "height": 736, "title": null, "alt": null, - "url": "https://www.datocms-assets.com/101962/1724390484-bitlauncherpresale2.jpg" + "url": "https://www.datocms-assets.com/101962/1724733057-pre-sale-bitlauncher-blog.png" } } } ] }, { - "name": "dao", - "slug": "dao", + "name": "fundraising", + "slug": "fundraising", "articles": [ { - "id": "W8caLxKNTdahoemkXQT_sg", - "topics": ["how_to", "launchpad", "dao"], - "title": "Welcome to the Bitlauncher Presale Starting August 31st!", - "slug": "welcome-to-the-bitlauncher-presale-starting-august-31st", + "id": "TBAOoPr9SPihQxeeKTGUQw", + "topics": [ + "launchpad", + "investment", + "fundraising" + ], + "title": "What is a Public Token Presale?", + "slug": "what-is-a-public-token-presale", "authorName": "Jun Dam", "authorPicture": { "url": "https://www.datocms-assets.com/101962/1686758812-jdamx170-removebg-preview.png" }, - "_publishedAt": "2024-08-23T06:22:18+01:00", - "description": "Bitlauncher Presale begins August 31st, offering a unique opportunity to invest in the intersection of AI and cryptocurrency. Secure your presale tokens at $1 each and be part of this transformative venture.", + "_publishedAt": "2024-08-27T05:32:23+01:00", + "description": "Public token presales provide early investment chances at fixed prices before main sales. They help projects raise pre-launch funds, gauge interest, and build community, offering potential benefits for participants.", "thumbnail": { - "url": "https://www.datocms-assets.com/101962/1724390484-bitlauncherpresale2.jpg" + "url": "https://www.datocms-assets.com/101962/1724733057-pre-sale-bitlauncher-blog.png" }, "contentBlock": [], "seo": { - "description": "Bitlauncher Presale starts August 31st. Join the AI-crypto revolution by securing presale tokens at $1 each.", - "title": "Bitlauncher Presale Starting August 31st!", + "description": "Public token presales offer early investment opportunities before main sale, helping projects raise pre-launch capital.", + "title": "What is a Public Token Presale?", "twitterCard": "summary_large_image", "image": { "width": 1312, "height": 736, "title": null, "alt": null, - "url": "https://www.datocms-assets.com/101962/1724390484-bitlauncherpresale2.jpg" - } - } - }, - { - "id": "ecAGoOkaROa09DcoVKyOCA", - "topics": ["dao", "analysis", "launchpad"], - "title": "What is the Bitlauncher ($BL) Token?", - "slug": "what-is-the-bitlauncher-bl-token", - "authorName": "Jun Dam", - "authorPicture": { - "url": "https://www.datocms-assets.com/101962/1686758812-jdamx170-removebg-preview.png" - }, - "_publishedAt": "2024-08-23T06:12:11+01:00", - "description": "Bitlauncher's public token presale offers early investment opportunities in AI and blockchain projects. Secure tokens at $1 each, contribute to pre-launch funding, and join the growing community.", - "thumbnail": { - "url": "https://www.datocms-assets.com/101962/1724389825-whatisbltoken1.webp" - }, - "contentBlock": [], - "seo": { - "description": "Bitlauncher ($BL) token: Powering the AI-focused launchpad, enabling governance, transactions, and ecosystem growth.", - "title": "What is the Bitlauncher ($BL) Token?", - "twitterCard": "summary_large_image", - "image": { - "width": 1797, - "height": 603, - "title": null, - "alt": null, - "url": "https://www.datocms-assets.com/101962/1724356923-bl-thumbnail.png" + "url": "https://www.datocms-assets.com/101962/1724733057-pre-sale-bitlauncher-blog.png" } } } @@ -260,14 +292,18 @@ "articles": [ { "id": "ecAGoOkaROa09DcoVKyOCA", - "topics": ["dao", "analysis", "launchpad"], + "topics": [ + "dao", + "analysis", + "launchpad" + ], "title": "What is the Bitlauncher ($BL) Token?", "slug": "what-is-the-bitlauncher-bl-token", "authorName": "Jun Dam", "authorPicture": { "url": "https://www.datocms-assets.com/101962/1686758812-jdamx170-removebg-preview.png" }, - "_publishedAt": "2024-08-23T06:12:11+01:00", + "_publishedAt": "2024-08-27T05:06:47+01:00", "description": "Bitlauncher's public token presale offers early investment opportunities in AI and blockchain projects. Secure tokens at $1 each, contribute to pre-launch funding, and join the growing community.", "thumbnail": { "url": "https://www.datocms-assets.com/101962/1724389825-whatisbltoken1.webp" @@ -309,4 +345,4 @@ "id": "eHRNE2sPRwmbNcaCuWmZGA", "_createdAt": "2024-08-23T06:49:05+01:00" } -} +} \ No newline at end of file diff --git a/apps/webapp/dictionaries/en/blog/blog-index.json b/apps/webapp/dictionaries/en/blog/blog-index.json index dbeedbc0..b76ececa 100644 --- a/apps/webapp/dictionaries/en/blog/blog-index.json +++ b/apps/webapp/dictionaries/en/blog/blog-index.json @@ -6,7 +6,9 @@ "articles": [ { "id": "SpdLuuYEQgW8rwSHNzhmxA", - "topics": ["Apps"], + "topics": [ + "Apps" + ], "title": "Masterbots: Elevating AI Beyond ChatGPT with Social Sharing and User-Friendly Innovation", "slug": "masterbots-elevating-ai-beyond-chatgpt-with-social-sharing-and-user-friendly-inno", "authorName": "Jun Dam", @@ -34,7 +36,11 @@ }, { "id": "190259319", - "topics": ["Summary", "LLM", "Training"], + "topics": [ + "Summary", + "LLM", + "Training" + ], "title": "Latent Space Podcast 8/16/23 [Summary] - The Mathematics of Training LLMs — with Quentin Anthony of Eleuther AI", "slug": "latent-space-podcast-8-16-23-summary-the-mathematics-of-training-llms-with-que", "authorName": "Prof. Otto Nomos", @@ -62,7 +68,12 @@ }, { "id": "190259129", - "topics": ["LLM", "Hardware", "Summary", "Edge"], + "topics": [ + "LLM", + "Hardware", + "Summary", + "Edge" + ], "title": "Latent Space Podcast 8/10/23 [Summary]: LLMs Everywhere: Running 70B models in browsers and iPhones using MLC — with Tianqi Chen of CMU / OctoML", "slug": "latent-space-podcast-8-10-23-summary-llms-everywhere-running-70b-models-in-browse", "authorName": "Prof. Otto Nomos", @@ -90,7 +101,13 @@ }, { "id": "190259087", - "topics": ["Summary", "LLM", "Code", "Open Source", "Small Models"], + "topics": [ + "Summary", + "LLM", + "Code", + "Open Source", + "Small Models" + ], "title": "Latent Space Podcast 8/4/23 [Summary] Latent Space x AI Breakdown crossover pod! ", "slug": "latent-space-podcast-8-4-23-summary-latent-space-x-ai-breakdown-crossover-pod", "authorName": "Prof. Otto Nomos", @@ -118,7 +135,12 @@ }, { "id": "190259111", - "topics": ["Summary", "Transformers", "Training", "Open Source"], + "topics": [ + "Summary", + "Transformers", + "Training", + "Open Source" + ], "title": " Latent Space Podcast 7/26/23 [Summary] FlashAttention 2: making Transformers 800% faster - Tri Dao of Together AI", "slug": "latent-space-podcast-7-26-23-summary-flashattention-2-making-transformers-800-fas", "authorName": "Prof. Otto Nomos", @@ -152,7 +174,13 @@ "articles": [ { "id": "198277124", - "topics": ["LLM", "Finance", "Healthcare", "Legal", "Prompting"], + "topics": [ + "LLM", + "Finance", + "Healthcare", + "Legal", + "Prompting" + ], "title": "Adapting Large Language Models via Reading Comprehension", "slug": "adapting-large-language-models-via-reading-comprehension", "authorName": "Prof. Otto Nomos", @@ -180,7 +208,10 @@ }, { "id": "198277342", - "topics": ["LLM", "Multilingual"], + "topics": [ + "LLM", + "Multilingual" + ], "title": "OpenBA: An Open-sourced 15B Bilingual Asymmetric seq2seq Model Pre-trained from Scratch", "slug": "openba-an-open-sourced-15b-bilingual-asymmetric-seq2seq-model-pre-trained-from-sc", "authorName": "Prof. Otto Nomos", @@ -208,7 +239,10 @@ }, { "id": "198277117", - "topics": ["LLM", "Retrieval"], + "topics": [ + "LLM", + "Retrieval" + ], "title": "PDFTriage: Question Answering over Long, Structured Documents", "slug": "pdftriage-question-answering-over-long-structured-documents", "authorName": "Prof. Otto Nomos", @@ -236,7 +270,10 @@ }, { "id": "198277138", - "topics": ["LLM", "Fine-tuning"], + "topics": [ + "LLM", + "Fine-tuning" + ], "title": "Sorted LLaMA: Unlocking the Potential of Intermediate Layers of Large Language Models for Dynamic Inference Using Sorted Fine-Tuning (SoFT)", "slug": "sorted-llama-unlocking-the-potential-of-intermediate-layers-of-large-language-mod", "authorName": "Prof. Otto Nomos", @@ -264,7 +301,11 @@ }, { "id": "198277150", - "topics": ["LLM", "Instruction Tuning", "Multimodal"], + "topics": [ + "LLM", + "Instruction Tuning", + "Multimodal" + ], "title": "An Empirical Study of Scaling Instruct-Tuned Large Multimodal Models", "slug": "an-empirical-study-of-scaling-instruct-tuned-large-multimodal-models", "authorName": "Prof. Otto Nomos", @@ -297,71 +338,83 @@ "slug": "bitlauncher", "articles": [ { - "id": "TBAOoPr9SPihQxeeKTGUQw", - "topics": ["launchpad", "investment", "fundraising"], - "title": "What is a Public Token Presale?", - "slug": "what-is-a-public-token-presale", + "id": "W8caLxKNTdahoemkXQT_sg", + "topics": [ + "how_to", + "launchpad", + "dao" + ], + "title": "Welcome to the Bitlauncher Presale Starting September 15th!", + "slug": "welcome-to-the-bitlauncher-presale-starting-september-15th", "authorName": "Jun Dam", "authorPicture": { "url": "https://www.datocms-assets.com/101962/1686758812-jdamx170-removebg-preview.png" }, - "_publishedAt": "2024-08-23T06:22:36+01:00", - "description": "Public token presales provide early investment chances at fixed prices before main sales. They help projects raise pre-launch funds, gauge interest, and build community, offering potential benefits for participants.", + "_publishedAt": "2024-08-28T01:36:20+01:00", + "description": "Bitlauncher Presale begins September 15th, 2024, offering a unique opportunity to invest in the intersection of AI and cryptocurrency. Secure your presale tokens at $1 each and be part of this transformative venture.", "thumbnail": { - "url": "https://www.datocms-assets.com/101962/1724356923-bl-thumbnail.png" + "url": "https://www.datocms-assets.com/101962/1724390484-bitlauncherpresale2.jpg" }, "contentBlock": [], "seo": { - "description": "Public token presales offer early investment opportunities before main sale, helping projects raise pre-launch capital.", - "title": "What is a Public Token Presale?", + "description": "Bitlauncher Presale starts September 15th, 2024. Join the AI-crypto revolution by securing presale tokens at $1 each.", + "title": "Bitlauncher Presale Starting August 31st!", "twitterCard": "summary_large_image", "image": { - "width": 1797, - "height": 603, + "width": 1312, + "height": 736, "title": null, "alt": null, - "url": "https://www.datocms-assets.com/101962/1724356923-bl-thumbnail.png" + "url": "https://www.datocms-assets.com/101962/1724390484-bitlauncherpresale2.jpg" } } }, { - "id": "W8caLxKNTdahoemkXQT_sg", - "topics": ["how_to", "launchpad", "dao"], - "title": "Welcome to the Bitlauncher Presale Starting August 31st!", - "slug": "welcome-to-the-bitlauncher-presale-starting-august-31st", + "id": "TBAOoPr9SPihQxeeKTGUQw", + "topics": [ + "launchpad", + "investment", + "fundraising" + ], + "title": "What is a Public Token Presale?", + "slug": "what-is-a-public-token-presale", "authorName": "Jun Dam", "authorPicture": { "url": "https://www.datocms-assets.com/101962/1686758812-jdamx170-removebg-preview.png" }, - "_publishedAt": "2024-08-23T06:22:18+01:00", - "description": "Bitlauncher Presale begins August 31st, offering a unique opportunity to invest in the intersection of AI and cryptocurrency. Secure your presale tokens at $1 each and be part of this transformative venture.", + "_publishedAt": "2024-08-27T05:32:23+01:00", + "description": "Public token presales provide early investment chances at fixed prices before main sales. They help projects raise pre-launch funds, gauge interest, and build community, offering potential benefits for participants.", "thumbnail": { - "url": "https://www.datocms-assets.com/101962/1724390484-bitlauncherpresale2.jpg" + "url": "https://www.datocms-assets.com/101962/1724733057-pre-sale-bitlauncher-blog.png" }, "contentBlock": [], "seo": { - "description": "Bitlauncher Presale starts August 31st. Join the AI-crypto revolution by securing presale tokens at $1 each.", - "title": "Bitlauncher Presale Starting August 31st!", + "description": "Public token presales offer early investment opportunities before main sale, helping projects raise pre-launch capital.", + "title": "What is a Public Token Presale?", "twitterCard": "summary_large_image", "image": { "width": 1312, "height": 736, "title": null, "alt": null, - "url": "https://www.datocms-assets.com/101962/1724390484-bitlauncherpresale2.jpg" + "url": "https://www.datocms-assets.com/101962/1724733057-pre-sale-bitlauncher-blog.png" } } }, { "id": "ecAGoOkaROa09DcoVKyOCA", - "topics": ["dao", "analysis", "launchpad"], + "topics": [ + "dao", + "analysis", + "launchpad" + ], "title": "What is the Bitlauncher ($BL) Token?", "slug": "what-is-the-bitlauncher-bl-token", "authorName": "Jun Dam", "authorPicture": { "url": "https://www.datocms-assets.com/101962/1686758812-jdamx170-removebg-preview.png" }, - "_publishedAt": "2024-08-23T06:12:11+01:00", + "_publishedAt": "2024-08-27T05:06:47+01:00", "description": "Bitlauncher's public token presale offers early investment opportunities in AI and blockchain projects. Secure tokens at $1 each, contribute to pre-launch funding, and join the growing community.", "thumbnail": { "url": "https://www.datocms-assets.com/101962/1724389825-whatisbltoken1.webp" @@ -388,7 +441,9 @@ "articles": [ { "id": "CD89KaoLSh6nQbiMhxX0EQ", - "topics": ["launchpad"], + "topics": [ + "launchpad" + ], "title": "Ensuring Trust and Integrity: Regulatory Compliance and Security Measures", "slug": "ensuring-trust-and-integrity-regulatory-compliance-and-security-measures", "authorName": "Jun Dam", @@ -416,7 +471,9 @@ }, { "id": "H_DP7HFORBuw9rID5Jkhhw", - "topics": ["how_to"], + "topics": [ + "how_to" + ], "title": "How to Register and KYC to Bitcash", "slug": "how-to-register-and-kyc-to-bitcash", "authorName": "Roberto \"Andler\" Lucas", @@ -444,7 +501,9 @@ }, { "id": "fbM-UqrYQXGhw6HB4C6swQ", - "topics": ["launchpad"], + "topics": [ + "launchpad" + ], "title": "Strategic Roadmap: Pioneering Blockchain Innovation and AI Startup Success", "slug": "strategic-roadmap-pioneering-blockchain-innovation-and-ai-startup-success", "authorName": "Jun Dam", @@ -472,7 +531,9 @@ }, { "id": "I4jShMnWRruvJgDbrucwDw", - "topics": ["launchpad"], + "topics": [ + "launchpad" + ], "title": "The Technological Backbone of bitLauncher", "slug": "the-technological-backbone-of-bitcash-launchpad", "authorName": "Jun Dam", @@ -500,7 +561,9 @@ }, { "id": "BEfgGhndSsCn5MBU89RO3A", - "topics": ["launchpad"], + "topics": [ + "launchpad" + ], "title": "Empowering Innovation: Vision, Mission, and Strategic Goals of bitLauncher", "slug": "empowering-innovation-vision-mission-and-strategic-goals-of-bitcash-launchpad", "authorName": "Jun Dam", @@ -534,7 +597,10 @@ "articles": [ { "id": "166795692", - "topics": ["Getting Started", "Business & Admin"], + "topics": [ + "Getting Started", + "Business & Admin" + ], "title": "Mastering Cash Flow: The Ultimate Guide for Startup Founders", "slug": "mastering-cash-flow-the-ultimate-guide-for-startup-founders", "authorName": "Bootstrap Briggs", @@ -562,7 +628,10 @@ }, { "id": "166788631", - "topics": ["Getting Started", "Business & Admin"], + "topics": [ + "Getting Started", + "Business & Admin" + ], "title": "Smart Budgeting for Startups: A Step-by-Step Guide to Building a Strong Financial Foundation", "slug": "smart-budgeting-for-startups-a-step-by-step-guide-to-building-a-strong-financial", "authorName": "Bootstrap Briggs", @@ -590,7 +659,10 @@ }, { "id": "165816954", - "topics": ["Getting Started", "Teams & HR"], + "topics": [ + "Getting Started", + "Teams & HR" + ], "title": "Building a Dream Team: The Ultimate Guide to Assembling Your Startup Squad", "slug": "building-a-dream-team-the-ultimate-guide-to-assembling-your-startup-squad", "authorName": "Bootstrap Briggs", @@ -618,7 +690,10 @@ }, { "id": "166322203", - "topics": ["Getting Started", "Sales & Marketing"], + "topics": [ + "Getting Started", + "Sales & Marketing" + ], "title": "The Blueprint to Success: A Guide to Crafting a Winning Sales Plan for Your Startup", "slug": "the-blueprint-to-success-a-guide-to-crafting-a-winning-sales-plan-for-your-startu", "authorName": "Steve Savant", @@ -652,7 +727,10 @@ "articles": [ { "id": "180217169", - "topics": ["Tokenomics", "Commentary"], + "topics": [ + "Tokenomics", + "Commentary" + ], "title": "Economics of Tokenized Incentives 3: Token Value Won’t Align Stakeholders [Commentary]", "slug": "economics-of-tokenized-incentives-3-token-value-won-t-align-stakeholders-commenta", "authorName": "Crypto Clairity", @@ -680,7 +758,10 @@ }, { "id": "180217123", - "topics": ["Tokenomics", "Commentary"], + "topics": [ + "Tokenomics", + "Commentary" + ], "title": "Economics of Tokenized Incentives 2: Selecting Effective Performance Metrics [Commentary]", "slug": "economics-of-tokenized-incentives-2-selecting-effective-performance-metrics-comme", "authorName": "Crypto Clairity", @@ -708,7 +789,10 @@ }, { "id": "180217082", - "topics": ["Tokenomics", "Commentary"], + "topics": [ + "Tokenomics", + "Commentary" + ], "title": "Economics of Tokenized Incentives 1: Intro to Pay for Performance [Commentary]", "slug": "economics-of-tokenized-incentives-1-intro-to-pay-for-performance", "authorName": "Crypto Clairity", @@ -736,7 +820,10 @@ }, { "id": "180556627", - "topics": ["Commentary", "Smart Contracts"], + "topics": [ + "Commentary", + "Smart Contracts" + ], "title": "Incomplete Contracts and Blockchain [Commentary]", "slug": "incomplete-contracts-and-blockchain-commentary", "authorName": "Crypto Clairity", @@ -770,7 +857,11 @@ "articles": [ { "id": "165362142", - "topics": ["Getting Started", "Proof-of-Work", "Mining"], + "topics": [ + "Getting Started", + "Proof-of-Work", + "Mining" + ], "title": "Unlocking the Power of Bitcoin Mining: An Introduction to Proof-of-Work Algorithms", "slug": "unlocking-the-power-of-bitcoin-mining-an-introduction-to-proof-of-work-algorithms", "authorName": "Maxi Millie", @@ -798,7 +889,10 @@ }, { "id": "165340146", - "topics": ["Getting Started", "Proof-of-Work"], + "topics": [ + "Getting Started", + "Proof-of-Work" + ], "title": "The Economic Security of Bitcoin: How Proof-of-Work Enables a Safe and Secure Network", "slug": "the-economic-security-of-bitcoin-how-proof-of-work-enables-a-safe-and-secure-netw", "authorName": "Maxi Millie", @@ -826,7 +920,10 @@ }, { "id": "165340050", - "topics": ["Getting Started", "Legal"], + "topics": [ + "Getting Started", + "Legal" + ], "title": "Navigating the Legal and Regulatory Landscape of Bitcoin: Understanding the Rules and Opportunities", "slug": "navigating-the-legal-and-regulatory-landscape-of-bitcoin-understanding-the-rules", "authorName": "Maxi Millie", @@ -854,7 +951,10 @@ }, { "id": "165337859", - "topics": ["Getting Started", "Security"], + "topics": [ + "Getting Started", + "Security" + ], "title": "The Future of Bitcoin Storage: An Introduction to Bitcoin Wallets and Innovative Storage Solutions", "slug": "the-future-of-bitcoin-storage-an-introduction-to-bitcoin-wallets-and-innovative-s", "authorName": "Maxi Millie", @@ -888,7 +988,10 @@ "articles": [ { "id": "174592759", - "topics": ["Getting Started", "Alternatives"], + "topics": [ + "Getting Started", + "Alternatives" + ], "title": "Unleashing the Potential: Mastering Alternative Investments for Contributor Success", "slug": "unleashing-the-potential-mastering-alternative-investments-for-contributor-success", "authorName": "Mister Moneybags", @@ -916,7 +1019,10 @@ }, { "id": "175015363", - "topics": ["Getting Started", "Mutual Funds & ETFs"], + "topics": [ + "Getting Started", + "Mutual Funds & ETFs" + ], "title": "Unveiling the Pros and Cons of Exchange-Traded Funds (ETFs): A Comprehensive Guide for Contributors", "slug": "unveiling-the-pros-and-cons-of-exchange-traded-funds-etfs-a-comprehensive-guide-f", "authorName": "Mister Moneybags", @@ -944,7 +1050,10 @@ }, { "id": "176002890", - "topics": ["Getting Started", "Risk Management"], + "topics": [ + "Getting Started", + "Risk Management" + ], "title": "Shield Your Investments: A Comprehensive Guide to Recognizing and Avoiding Investment Fraud", "slug": "shield-your-investments-a-comprehensive-guide-to-recognizing-and-avoiding-investm", "authorName": "Mister Moneybags", @@ -972,7 +1081,10 @@ }, { "id": "176002763", - "topics": ["Getting Started", "Insurance"], + "topics": [ + "Getting Started", + "Insurance" + ], "title": "Insurance Planning 101: Navigating Life, Disability, and Long-Term Care Insurance", "slug": "insurance-planning-101-navigating-life-disability-and-long-term-care-insurance", "authorName": "Mister Moneybags", @@ -1001,4 +1113,4 @@ ] } ] -} +} \ No newline at end of file