{"id":25435880,"url":"https://github.com/idea2app/lark-next-bootstrap-ts","last_synced_at":"2026-04-17T10:31:28.233Z","repository":{"id":273010780,"uuid":"918461387","full_name":"idea2app/Lark-Next-Bootstrap-ts","owner":"idea2app","description":"Lark project scaffold based on TypeScript, React, Next.js, Bootstrap \u0026 Workbox.","archived":false,"fork":false,"pushed_at":"2026-04-06T14:55:47.000Z","size":572,"stargazers_count":3,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-06T16:29:18.140Z","etag":null,"topics":["bootstrap","lark","nextjs","pwa","scaffold","ssr"],"latest_commit_sha":null,"homepage":"https://lark-next-bootstrap-ts.vercel.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/idea2app.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-18T01:53:40.000Z","updated_at":"2026-04-06T14:55:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"1632538a-2085-46c8-b577-4a755e7c6aa3","html_url":"https://github.com/idea2app/Lark-Next-Bootstrap-ts","commit_stats":null,"previous_names":["idea2app/lark-next-bootstrap-ts"],"tags_count":0,"template":true,"template_full_name":"idea2app/Next-Bootstrap-ts","purl":"pkg:github/idea2app/Lark-Next-Bootstrap-ts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idea2app%2FLark-Next-Bootstrap-ts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idea2app%2FLark-Next-Bootstrap-ts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idea2app%2FLark-Next-Bootstrap-ts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idea2app%2FLark-Next-Bootstrap-ts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/idea2app","download_url":"https://codeload.github.com/idea2app/Lark-Next-Bootstrap-ts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idea2app%2FLark-Next-Bootstrap-ts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31925303,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T10:19:20.377Z","status":"ssl_error","status_checked_at":"2026-04-17T10:19:18.682Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","lark","nextjs","pwa","scaffold","ssr"],"created_at":"2025-02-17T07:34:35.173Z","updated_at":"2026-04-17T10:31:28.226Z","avatar_url":"https://github.com/idea2app.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lark-Next-Bootstrap-ts\n\n[Lark][0] project scaffold based on [TypeScript][2], [React][1], [Next.js][3], [Bootstrap][4] \u0026 [Workbox][5]. And this project bootstrapped with [`create-next-app`][6].\n\n[![CI \u0026 CD](https://github.com/idea2app/Lark-Next-Bootstrap-ts/actions/workflows/main.yml/badge.svg)][7]\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)][8]\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)][9]\n\n## Technology stack\n\n- Language: [TypeScript v5][2] + [MDX v3][10]\n- Component engine: [Next.js v16][3]\n- Component suite: [Bootstrap v5][4]\n- PWA framework: [Workbox v6][5]\n- State management: [MobX v6][11]\n- API router: [Koa v3][12]\n- CI / CD: GitHub [Actions][13] + [Vercel][14]\n- Monitor service: [Sentry][15]\n\n## Major examples\n\n1. [Markdown articles](pages/article/)\n2. [Lark wiki](pages/wiki/)\n3. [Editor components](pages/component.tsx)\n4. [Pagination table](pages/pagination.tsx)\n5. [Scroll list](pages/scroll-list.tsx)\n6. [Not Found page (NGO)](pages/_error.tsx)\n   - Global: https://notfound.org/\n   - Chinese: https://www.dnpw.org/cn/pa-notfound.html\n\n## User cases\n\n1. https://github.com/kaiyuanshe/kaiyuanshe.github.io\n2. https://github.com/idea2app/idea2app.github.io\n3. https://github.com/Open-Source-Bazaar/Open-Source-Bazaar.github.io\n\n## Best practice\n\n1.  Install GitHub apps in your organization or account:\n    1.  [Probot settings][16]: set up Issue labels \u0026 Pull Request rules\n    2.  [PR badge][17]: set up Online [VS Code][18] editor entries in Pull Request description\n\n2.  Click the **[\u003ckbd\u003eUse this template\u003c/kbd\u003e][19] button** on the top of this GitHub repository's home page, then create your own repository in the app-installed namespace above\n\n3.  Click the **[\u003ckbd\u003eOpen in GitHub codespaces\u003c/kbd\u003e][8] button** on the top of ReadMe file, then an **online VS Code development environment** will be started immediately\n\n4.  Set [Vercel variables][20] \u0026 [Lark chat bot URL][21] as [Repository secrets][22], then every commit will send a Lark message with an independent **Preview URL**\n\n5.  Remind the PMs \u0026 users of your product to submit **Feature/Enhancement** requests or **Bug** reports with [Issue forms][23] instead of IM messages or Mobile Phone calls\n\n6.  Collect all these issues into [Project kanbans][24], then create **Pull requests** \u0026 add `closes #issue_number` into its description for automation\n\n## Getting Started\n\nFirst, run the development server:\n\n```bash\nnpm i pnpm -g\npnpm dev\n```\n\nOpen http://localhost:3000 with your browser to see the result.\n\nYou can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.\n\n[API routes][25] can be accessed on http://localhost:3000/api/hello. This endpoint can be edited in `pages/api/hello.ts`.\n\nThe `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as API routes instead of React pages.\n\n## Learn More\n\nTo learn more about Next.js, take a look at the following resources:\n\n- [Next.js Documentation][26] - learn about Next.js features and API.\n- [Learn Next.js][27] - an interactive Next.js tutorial.\n\nYou can check out [the Next.js GitHub repository][28] - your feedback and contributions are welcome!\n\n## Deployment\n\n### Environment variables\n\n|            name             |     file     |                   description                   |\n| :-------------------------: | :----------: | :---------------------------------------------: |\n|        `JWT_SECRET`         | `.env.local` | Random String for **JSON Web Token** encryption |\n|     `SENTRY_AUTH_TOKEN`     | `.env.local` |             [Official document][29]             |\n|        `SENTRY_ORG`         |    `.env`    |             [Official document][30]             |\n|      `SENTRY_PROJECT`       |    `.env`    |             [Official document][30]             |\n|  `NEXT_PUBLIC_SENTRY_DSN`   |    `.env`    |             [Official document][31]             |\n|  `NEXT_PUBLIC_LARK_APP_ID`  | `.env.local` |             [Official document][32]             |\n|      `LARK_APP_SECRET`      | `.env.local` |             [Official document][32]             |\n|  `NEXT_PUBLIC_CACHE_HOST`   |    `.env`    |            Static files CDN for Lark            |\n|     `CACHE_REPOSITORY`      |    `.env`    |   [GitHub repository for Lark file cache][33]   |\n| `NEXT_PUBLIC_LARK_WIKI_URL` |    `.env`    |            Entry URL of a Lark wiki             |\n\n### Vercel\n\nThe easiest way to deploy your Next.js app is to use the [Vercel Platform][14] from the creators of Next.js.\n\nCheck out our [Next.js deployment documentation][34] for more details.\n\n### Docker\n\n```shell\npnpm pack-image\npnpm container\n```\n\n### CDN\n\n1. create \u0026 configure your own `CACHE_REPOSITORY` with https://github.com/idea2app/Web-file-cache\n2. set the `NEXT_PUBLIC_CACHE_HOST` environment variable to your CDN URL\n3. create an Automation Flow in your Lark BI Table to watch Attachment fields changing, then send an HTTP `POST` request to `https://api.github.com/repos/your-namespace/Web-file-cache/actions/workflows/crawler.yml/dispatches` with:\n   1. the [GitHub PAT][35] in the `Authorization` header\n   2. `https://your.next.js/api/Lark/file/attachment-id/file-name` as `url` body parameter\n4. your Lark file attachments will be cached in your CDN and loaded by your Lark-Next.js service automatically\n\n[0]: https://www.larksuite.com/\n[1]: https://react.dev/\n[2]: https://www.typescriptlang.org/\n[3]: https://nextjs.org/\n[4]: https://getbootstrap.com/\n[5]: https://developers.google.com/web/tools/workbox\n[6]: https://github.com/vercel/next.js/tree/canary/packages/create-next-app\n[7]: https://github.com/idea2app/Lark-Next-Bootstrap-ts/actions/workflows/main.yml\n[8]: https://codespaces.new/idea2app/Lark-Next-Bootstrap-ts\n[9]: https://gitpod.io/?autostart=true#https://github.com/idea2app/Lark-Next-Bootstrap-ts\n[10]: https://mdxjs.com/\n[11]: https://mobx.js.org/\n[12]: https://koajs.com/\n[13]: https://github.com/features/actions\n[14]: https://vercel.com/new?utm_medium=default-template\u0026filter=next.js\u0026utm_source=create-next-app\u0026utm_campaign=create-next-app-readme\n[15]: https://sentry.io/\n[16]: https://github.com/apps/settings\n[17]: https://pullrequestbadge.com/\n[18]: https://code.visualstudio.com/\n[19]: https://github.com/new?template_name=Lark-Next-Bootstrap-ts\u0026template_owner=idea2app\n[20]: https://github.com/idea2app/Lark-Next-Bootstrap-ts/blob/afa51fad3b16e598bf3b10010b2dc47405b016a3/.github/workflows/main.yml#L9-L11\n[21]: https://github.com/idea2app/Lark-Next-Bootstrap-ts/blob/363e023e5dd472c8ea53ec96eac25ec5122e667b/.github/workflows/Lark-notification.yml#L39\n[22]: https://github.com/idea2app/Lark-Next-Bootstrap-ts/settings/secrets/actions\n[23]: https://github.com/idea2app/Lark-Next-Bootstrap-ts/issues/new/choose\n[24]: https://github.com/idea2app/Lark-Next-Bootstrap-ts/projects\n[25]: https://nextjs.org/docs/api-routes/introduction\n[26]: https://nextjs.org/docs\n[27]: https://nextjs.org/learn\n[28]: https://github.com/vercel/next.js/\n[29]: https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/#use-configuration-files-for-source-map-upload\n[30]: https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/#use-environment-variables\n[31]: https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/#create-initialization-config-files\n[32]: https://open.larksuite.com/document/server-docs/getting-started/api-access-token/app-access-token-development-guide#1f8b587c\n[33]: https://github.com/idea2app/Web-file-cache?tab=readme-ov-file\n[34]: https://nextjs.org/docs/deployment\n[35]: https://github.com/settings/tokens\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fidea2app%2Flark-next-bootstrap-ts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fidea2app%2Flark-next-bootstrap-ts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fidea2app%2Flark-next-bootstrap-ts/lists"}