Source for the f13.io website. https://f13.io
  • Astro 76.5%
  • CSS 22.9%
  • JavaScript 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
thhsh f265252078
All checks were successful
ci/woodpecker/push/reuse-lint Pipeline was successful
ci/woodpecker/push/build-publish-main Pipeline was successful
Update dmca.md
2026-09-01 14:46:02 -04:00
.woodpecker Update build-publish-main.yaml 2026-08-21 16:33:09 -04:00
LICENSES Add licenses 2026-05-01 13:43:37 -04:00
public Delete .htaccess 2026-07-29 20:50:35 -04:00
src Update dmca.md 2026-09-01 14:46:02 -04:00
.ai-disclaimer.json add ai-disclaimer 2026-07-29 20:30:23 -04:00
.gitignore Redo licensing 2026-05-05 13:19:58 -04:00
ai-disclaimer.md move ai-disclaimer to separate page 2026-08-20 11:17:15 -04:00
astro.config.mjs Redo licensing 2026-05-05 13:19:58 -04:00
CLAUDE.md Redo licensing 2026-05-05 13:19:58 -04:00
f13io-deftform.css create deftform css 2026-06-26 14:59:24 -04:00
package-lock.json add markdown-remark 2026-06-26 12:37:21 -04:00
package.json add markdown-remark 2026-06-26 12:37:21 -04:00
README.md Update README.md 2026-08-26 15:05:21 -04:00
REUSE.toml CI updates 2026-08-20 13:27:50 -04:00
style.md create deftform css 2026-06-26 14:59:24 -04:00
trifold-main.toml CI updates 2026-08-20 13:27:50 -04:00
trifold-stg.toml CI updates 2026-08-20 13:27:50 -04:00

f13.io — Figure13 Landing Page

Source for the f13.io landing page. Built with Astro — minimal client-side JS, fast, and statically exported.

Open Issues Badge Open Pulls Badge

main branch
Gitea Last Commit (branch)
status-badge
stg branch
Gitea Last Commit (branch)
status-badge

Stack

  • Framework: Astro 4.x
  • Fonts: Syne (display) + DM Mono (body/UI) via Bunny Fonts
  • Styling: Scoped CSS with CSS custom properties — no Tailwind, no framework

Getting Started

npm install
npm run dev       # dev server at localhost:4321
npm run build     # production build → dist/
npm run preview   # preview production build locally

Fish shell completions

astrodev      # dev preview server (as above)
astrobuild    # production build (as above)

Customization

Adding a product

In src/pages/index.astro, add an entry to the techProducts array:

{
  name: 'Your Product',
  tagline: 'One compelling sentence.',
  description: 'A bit more detail for the card.',
  href: 'https://yourproduct.com',
  domain: 'yourproduct.com',
  status: 'live',   // or 'soon'
},

Colors / tokens

All design tokens live in src/styles/global.css under :root.

--c-accent:   #916DF7;   /* F13 purple */
--c-bg:       #000000;   /* page background */
--c-text-hi:  #FFFFFF;   /* headings */
--c-text-lo:  #C8C6CC;   /* body copy */

See style.md for color details, fonts, etc.

Deployment

npm run build outputs a fully static site to dist/.

The live site is hosted on Bunny. When a commit is pushed/merged to main,build-publish-main.yaml runs on Woodpecker CI which renders the site and publishes it to f13.io via trifold.

Similarly, when a commit is pushed/merged to main,build-publish-stg.yaml runs on Woodpecker CI which renders the site and publishes it to stg.f13.io via trifold.

You can track the builds using the badges at the top of this README, or in #ci-cd_site-builds on Discord.

Set up a deployment

This site uses trifold to publish the built site to Bunny.net. Before you publish a new branch (for example, the stg branch publishes to stg.f13.io), you will need to run trifold's init process to create a new trifold-[branch].toml file and pull zone.

  1. If you don't already have uv installed, install it following installing uv.
  2. Grab your Bunny API key, or if you don't have a Bunny account linked to our resources, grab the API key from 1Password. Save it as an env variable BUNNY_API_KEY. In bash: export BUNNY_API_KEY=a1b2c3... or in PowerShell: $env:BUNNY_API_KEY = "a1b2c3..."
  3. From within this project directory, run uvx trifold init. Answer the prompts as follows:
    1. Storage zone name: f13-dot-io-[branch]
    2. Region: NY
    3. Replication region: () (leave blank)
    4. Monthly bandwith limit: 50 (this value subject to change)
    5. Browser cache time: 60
    6. Remote path: () (leave blank)
    7. Local path: dist/
  4. Run uvx trifold status -v to review the files that will be published.
  5. Assuming all is well, run uvx trifold publish to push the initial files to Bunny.
  6. Check your published site at f13-dot-io-[branch].b-cdn.net to make sure everything published properly.
  7. If you want to add a custom (sub)domain (for example, [branch].f13.io), point a CNAME for that (sub)domain to f13-dot-io-[branch].b-cdn.net.
  8. Run uvx trifold hostname-add foo.example.com (replacing with your (sub)domain) to add the (sub)domain to Bunny and generate an SSL certificate.
  9. Once your deployment is all set, rename the generated trifold.toml file to trifold-[branch].toml so that it does not interfere with our CI pipelines.
  10. If you need to delete your deployment from Bunny, log in with your Bunny account credentials and delete the storage and pull zones for that specific deployment. If you do not have Bunny access, contact THH or open an issue here. A self-serve system is in the works and this page will be updated.

Contributing

Suggestions, content changes, and bug reports are welcome. Please file an issue in the issue tracker.

License

This project is released under the following licenses:

  • Site source code and contents: GPLv3
  • Images, logos, long-form text (like blog posts): CC-BY-SA 4.0
  • Auxiliary files (like .gitignore and security.txt): CC0 1.0

See REUSE.toml for specific details.

AI Disclaimer

This project uses AI-assisted development tools. Please see ai-disclaimer.md for details.