Skip to content

Commit abed226

Browse files
committed
refactor: clean md
1 parent 6374566 commit abed226

File tree

2 files changed

+66
-221
lines changed

2 files changed

+66
-221
lines changed

src/content/docs/about.md

Lines changed: 53 additions & 195 deletions
Original file line numberDiff line numberDiff line change
@@ -4,226 +4,84 @@ title: About
44

55
### What is this?
66

7-
<p>
8-
This website provides a RESTful API interface to highly
9-
detailed objects built from thousands of lines of data
10-
related to{' '}
11-
<a href="https://en.wikipedia.org/wiki/Pokemon">Pokémon</a>.
12-
We specifically cover the video game franchise. Using this
13-
website, you can consume information on Pokémon, their
14-
moves, abilities, types, egg groups and much, much more.
15-
</p>
16-
7+
This website provides a RESTful API interface to highly detailed objects built from thousands of lines of data related to [Pokémon](https://en.wikipedia.org/wiki/Pokemon). We specifically cover the video game franchise. Using this website, you can consume information on Pokémon, their moves, abilities, types, egg groups and much, much more.
178

189
### What is an API?
1910

20-
<p>
21-
An API (Application Programming Interface) is a contract
22-
that allow developers to interact with an application
23-
through a set of interfaces. In this case, the application
24-
is a database of thousands of Pokémon-related objects, and
25-
the interfaces are URL links.
26-
</p>
27-
<p>
28-
A RESTful API is an API that conforms to a set of loose
29-
conventions based on HTTP verbs, errors, and hyperlinks.
30-
</p>
11+
An API (Application Programming Interface) is a contract that allow developers to interact with an application through a set of interfaces. In this case, the application is a database of thousands of Pokémon-related objects, and the interfaces are URL links.
3112

13+
A RESTful API is an API that conforms to a set of loose conventions based on HTTP verbs, errors, and hyperlinks.
3214

3315
### Aren't there 101 other Pokémon websites already?
3416

35-
<p>Yes and that's exactly the problem!</p>
36-
<p>
37-
101 instances of the same website means 101 instances of the{' '}
38-
<strong>same data</strong>.
39-
</p>
40-
<p>
41-
We aim to provide a <strong>single source of data</strong>{' '}
42-
that any number of other websites can consume and use.
43-
</p>
44-
<p>
45-
Often, and especially when new Pokémon games or updates are
46-
released, those 101+ websites take <strong>weeks</strong> to
47-
update as people have to enter the same information in all
48-
those different places.
49-
</p>
50-
<p>
51-
This solves that problem. If all those sites consumed their
52-
data from here, they would have the exact same information
53-
that is updated at exactly the same time, with no errors
54-
between each website. The overall benefit is a better
55-
collaboration and consistency across all the different
56-
Pokémon websites and applications. It's good for all!
57-
</p>
17+
Yes and that's exactly the problem!
18+
19+
101 instances of the same website means 101 instances of the **same data**.
20+
21+
We aim to provide a **single source of data** that any number of other websites can consume and use.
22+
23+
Often, and especially when new Pokémon games or updates are released, those 101+ websites take **weeks** to update as people have to enter the same information in all those different places.
5824

25+
This solves that problem. If all those sites consumed their data from here, they would have the exact same information that is updated at exactly the same time, with no errors between each website. The overall benefit is a better collaboration and consistency across all the different Pokémon websites and applications. It's good for all!
5926

6027
### How much information is stored here?
61-
<p>A lot.</p>
62-
<p>
63-
We currently have <strong>tens of thousands</strong> of
64-
individual items in our database, including:
65-
</p>
66-
<ul>
67-
<li>Moves</li>
68-
<li>Abilities</li>
69-
<li>Pokémon (including various forms)</li>
70-
<li>Types</li>
71-
<li>Egg Groups</li>
72-
<li>Game Versions</li>
73-
<li>Items</li>
74-
<li>Pokédexes</li>
75-
<li>Pokémon Evolution Chains</li>
76-
</ul>
77-
<p>
78-
And that's just scratching the surface! To see all the
79-
different types of data we have, check out{' '}
80-
<Link to="/docs/v2">the docs</Link>.
81-
</p>
8228

29+
A lot.
30+
31+
We currently have **tens of thousands** of individual items in our database, including:
32+
33+
- Moves
34+
- Abilities
35+
- Pokémon (including various forms)
36+
- Types
37+
- Egg Groups
38+
- Game Versions
39+
- Items
40+
- Pokédexes
41+
- Pokémon Evolution Chains
42+
43+
And that's just scratching the surface! To see all the different types of data we have, check out [the docs](../docs/v2).
8344

8445
### The API is missing stuff!
8546

86-
<p>
87-
We know! Feel free to contribute to open issues on{' '}
88-
<a href="https://github.com/PokeAPI/pokeapi/">GitHub</a>.
89-
</p>
90-
<p>
91-
Have ideas for new features? We're on Slack! Sign up <a href="https://join.slack.com/t/pokeapi/shared_invite/zt-1l4vpwa8k-muQmMrFfv7TIFGrVWzjzcw"> right here </a> then visit our <a href="https://pokeapi.slack.com">slack team</a>.
92-
</p>
47+
We know! Feel free to contribute to open issues on [GitHub](https://github.com/PokeAPI/pokeapi/).
9348

49+
Have ideas for new features? We're on Slack! Sign up [right here](https://join.slack.com/t/pokeapi/shared_invite/zt-1l4vpwa8k-muQmMrFfv7TIFGrVWzjzcw)</a> then visit our [slack team](https://pokeapi.slack.com).
9450

9551
### So who built this?
9652

97-
<p>
98-
PokéAPI V1 was created by{' '}
99-
<a href="https://github.com/phalt">Paul Hallett</a> as a
100-
weekend project but it quickly became more than a weekend's
101-
worth of work. In{' '}
102-
<a
103-
href="https://phalt.github.io/posts/if-you-have-data-they-will-consume-it/"
104-
target="none"
105-
>
106-
December of 2014
107-
</a>{' '}
108-
Paul deprecated V1 in favor of working on V2.
109-
</p>
110-
<p>
111-
This is where{' '}
112-
<a href="https://github.com/zaneadix">Zane Adickes</a>{' '}
113-
jumped in. Zane thought the original project was a fantastic
114-
idea and wanted to help it grow. With direction from Paul,
115-
Zane created the V2 API using an exact mirror of{' '}
116-
<a href="https://github.com/eevee">Veekun's</a> data related
117-
to the main series of games.
118-
</p>
119-
<p>
120-
During summer 2018, Paul decided to hand over the project to the community. This is where Tim Malone, Mark Tse, Sargun Vohra, Charles Marttinen, Alessandro Pezzé, Alberto Oliveira da Silva, and Lucio Merotta came together and started planning how to change the infrastructure in order to improve performance and cut down on hosting costs. An important step was to convert the API to serve static JSON files, which was made possible by Sargun and his excellent <a href="https://github.com/PokeAPI/ditto">PokeAPI/ditto</a> tool. The frontend website was also re-built by Charles at the same time. The whole process was completed in October 2018.
121-
</p>
122-
<p>
123-
After this massive redesign, PokéAPI gained many new consumers due to its new blazing fast performance. To give a quick reference, the loading of the infamous <a href="https://pokeapi.co/api/v2/pokemon/magikarp">Magikarp pokemon resouce</a> passed from seconds to ~80ms.
124-
125-
An important milestone for the PokéAPI project happened shortly after in summer 2020, when its GitHub repository reached <strong>2000 stargazers</strong> and in a single month fulfilled <strong>100 million</strong> API calls.
126-
</p>
127-
<p>
128-
In August 2020 the PokéAPI community decided <a href="https://github.com/PokeAPI/pokeapi/issues/520">to temporarily fork</a> <a href="https://github.com/veekun/pokedex">veekun/pokedex</a>, which was the primary and only source of data. This operation was planned in order to add new generation-8 data, which Veekun lacked. The following people contributed to fetching and formatting generation-8 and newer data: <a href="https://github.com/Naramsim">Alessandro Pezzé</a>, <a href="https://github.com/ichbinfrog">Hoang Quoc Trung</a>, <a href="https://github.com/CMahk">Chandler Mahkorn</a>, <a href="https://github.com/AndreArrebola">André Sousa</a>, <a href="https://github.com/alex-whan">Alexander Whan</a>, <a href="https://github.com/myoKun345">Austin Jones</a>, <a href="https://github.com/tomi-912">tomi-912</a>, <a href="https://github.com/ercdndrs">Eric Donders</a>, <a href="https://github.com/pifopi">Gaël Dottel</a>, <a href="https://github.com/Parnassius">Parnassius</a> and <a href="https://github.com/anhthang">Anh Thang</a>.
129-
</p>
130-
<p>
131-
In January 2023 <a href="https://github.com/bitomic">bitomic</a>, <a href="https://github.com/giginet">Kohki Miki</a>, <a href="https://github.com/pebou">Paul-Émile</a>, <a href="https://github.com/tillfox">tillfox</a> scraped generation 9 data from the web and added it here.
132-
</p>
133-
<p>
134-
The current owners of the PokéAPI project are <a href="https://github.com/phalt">Paul Hallet</a>, <a href="https://github.com/tdmalone">Tim Malone</a> and <a href="https://github.com/Naramsim">Alessandro Pezzé</a>. Alongside them other core maintainers include <a href="https://github.com/cmmartti">Charles Marttinen</a> and <a href="https://github.com/sargunv">Sargun Vohra</a>.
135-
</p>
136-
<p>
137-
We also have a{' '}
138-
<a href="https://github.com/pokeapi">GitHub organisation</a>{' '}
139-
of contributors that you are welcome to join!
140-
</p>
53+
PokéAPI V1 was created by [Paul Hallett](https://github.com/phalt) as a weekend project but it quickly became more than a weekend's worth of work. In December of 2014 Paul deprecated V1 in favor of working on V2.
54+
55+
This is where[Zane Adickes](https://github.com/zaneadix)jumped in. Zane thought the original project was a fantastic idea and wanted to help it grow. With direction from Paul, Zane created the V2 API using an exact mirror of[Veekun's](https://github.com/eevee) data relatedto the main series of games.
14156

57+
During summer 2018, Paul decided to hand over the project to the community. This is where Tim Malone, Mark Tse, Sargun Vohra, Charles Marttinen, Alessandro Pezzé, Alberto Oliveira da Silva, and Lucio Merotta came together and started planning how to change the infrastructure in order to improve performance and cut down on hosting costs. An important step was to convert the API to serve static JSON files, which was made possible by Sargun and his excellent [PokeAPI/ditto](https://github.com/PokeAPI/ditto) tool. The frontend website was also re-built by Charles at the same time. The whole process was completed in October 2018.
58+
59+
After this massive redesign, PokéAPI gained many new consumers due to its new blazing fast performance. To give a quick reference, the loading of the infamous [Magikarp pokemon resouce](https://pokeapi.co/api/v2/pokemon/magikarp) passed from seconds to ~80ms.
60+
61+
An important milestone for the PokéAPI project happened shortly after in summer 2020, when its GitHub repository reached **2000 stargazers** and in a single month fulfilled **100 million** API calls.
62+
63+
In August 2020 the PokéAPI community decided [to temporarily fork](https://github.com/PokeAPI/pokeapi/issues/520) [veekun/pokedex](https://github.com/veekun/pokedex), which was the primary and only source of data. This operation was planned in order to add new generation-8 data, which Veekun lacked. The following people contributed to fetching and formatting generation-8 and newer data: [Alessandro Pezzé](https://github.com/Naramsim), [Hoang Quoc Trung](https://github.com/ichbinfrog), [Chandler Mahkorn](https://github.com/CMahk), [André Sousa](https://github.com/AndreArrebola), [Alexander Whan](https://github.com/alex-whan), [Austin Jones](https://github.com/myoKun345), [tomi-912](https://github.com/tomi-912), [Eric Donders](https://github.com/ercdndrs), [Gaël Dottel](https://github.com/pifopi), [Parnassius](https://github.com/Parnassius) and [Anh Thang](https://github.com/anhthang).
64+
65+
In January 2023 [bitomic](https://github.com/bitomic), [Kohki Miki](https://github.com/giginet), [Paul-Émile](https://github.com/pebou), [tillfox](https://github.com/tillfox) scraped generation 9 data from the web and added it here.
66+
67+
The current owners of the PokéAPI project are [Paul Hallet](https://github.com/phalt), [Tim Malone](https://github.com/tdmalone) and [Alessandro Pezzé](https://github.com/Naramsim). Alongside them other core maintainers include [Charles Marttinen](https://github.com/cmmartti) and [Sargun Vohra](https://github.com/sargunv).
68+
69+
We also have a [GitHub organization](https://github.com/pokeapi) of contributors that you are welcome to join!
14270

14371
### Where did you get all of this data?
14472

145-
<p>
146-
We gathered the information on this site from various
147-
resources:
148-
</p>
149-
<ul>
150-
<li>
151-
<a href="https://github.com/veekun" target="none">
152-
Veekun
153-
</a>{' '}
154-
has a fantastic{' '}
155-
<a href="http://veekun.com/dex" target="none">
156-
Pokedex
157-
</a>{' '}
158-
which is also an open source{' '}
159-
<a
160-
href="https://github.com/veekun/pokedex"
161-
target="none"
162-
>
163-
project
164-
</a>{' '}
165-
containing a ton of csv data. We used this to flesh out
166-
the database that powers Pokéapi.
167-
</li>
168-
<li>
169-
Generation 8 data is scraped from <a href="https://bulbapedia.bulbagarden.net/wiki/Generation_VIII">different resources</a> which are considered to be trustful. Later on the data was integrated with the official one released by Veekun.
170-
</li>
171-
</ul>
172-
<p>We'd also like to thank:</p>
173-
<ul>
174-
<li>
175-
Laven Pillay, who scraped together most of the sprites
176-
used on the site.
177-
</li>
178-
<li>
179-
<a href="https://github.com/Naramsim">
180-
Alessandro Pezzé
181-
</a>
182-
, who worked tirelessly to add the Sun/Moon updates.
183-
</li>
184-
</ul>
73+
We gathered the information on this site from various resources:
18574

75+
[Veekun](https://github.com/veekun) has a fantastic [Pokedex](http://veekun.com/dex) which is also an open source [project](https://github.com/veekun/pokedex) containing a ton of csv data. We used this to flesh out the database that powers Pokéapi.
76+
77+
Newer data is scraped from different resources which are considered to be trustful.
18678

18779
### What's the technology stack?
18880

189-
<p>
190-
Up until November 2018, the API and website were built
191-
together in a single{' '}
192-
<a href="https://python.org" target="none">
193-
Python
194-
</a>{' '}
195-
project using the{' '}
196-
<a href="https://djangoproject.com" target="none">
197-
Django framework
198-
</a>{' '}
199-
and paired with a{' '}
200-
<a href="https://www.postgresql.org" target="none">
201-
PostgreSQL
202-
</a>{' '}
203-
database to store the data.{' '}
204-
<a
205-
href="http://www.django-rest-framework.org/"
206-
target="none"
207-
>
208-
Django REST Framework
209-
</a>{' '}
210-
was used to expose the data through a RESTful API. The entire stack was deployed at <a href="https://www.digitalocean.com/">DigitalOcean</a>, initially paid by Paul and then sponsored directly by DigitalOcean itself.
211-
</p>
212-
213-
<p>
214-
In October 2018, the API was converted to serve static JSON
215-
files in a fully backwards compatible manner. This allowed
216-
PokéAPI to move its hosting to a cheap static hosting
217-
solution (<a href="https://firebase.google.com/">Firebase</a> Hosting + <a href="https://www.cloudflare.com/">Cloudflare</a> Caching), which
218-
increased performance and stability by a huge margin.
219-
</p>
220-
221-
<p>
222-
The move to static hosting was solved by introducing a build step before deployment performed by <a href="https://circleci.com/">CircleCI</a>, our build system. This build step starts a local Django copy of <a href="https://github.com/PokeAPI/pokeapi">PokeAPI/pokeapi</a> and saves each possible endpoint as a JSON file using <a href="https://github.com/PokeAPI/ditto">PokeAPI/ditto</a>. All these JSON files are then uploaded to Firebase and served to the public through a <a href="https://github.com/PokeAPI/deploy">Firebase function</a> actioned by CircleCI.
223-
</p>
224-
225-
<p>
226-
This website now uses <a href="https://github.com/react-static/react-static">React Static</a> and the code lives in its own GitHub project at <a href="https://github.com/PokeAPI/pokeapi.co">PokeAPI/pokeapi.co</a>. Again, CircleCI takes care of deploying it on Firebase as static files.
227-
</p>
81+
Up until November 2018, the API and website were built together in a single[Python](https://python.org) project using the [Django framework](https://djangoproject.com) and paired with a [PostgreSQL](https://www.postgresql.org) database to store the data. [Django REST Framework](http://www.django-rest-framework.org/) was used to expose the data through a RESTful API. The entire stack was deployed at [DigitalOcean](https://www.digitalocean.com/), initially paid by Paul and then sponsored directly by DigitalOcean itself.
82+
83+
In October 2018, the API was converted to serve static JSON files in a fully backwards compatible manner. This allowed PokéAPI to move its hosting to a cheap static hosting solution ([Firebase](https://firebase.google.com/) Hosting + [Cloudflare](https://www.cloudflare.com/) Caching), which increased performance and stability by a drastic margin.
22884

85+
The move to static hosting was solved by introducing a build step before deployment performed by [CircleCI](https://circleci.com/), our build system. This build step starts a local Django copy of [PokeAPI/pokeapi](https://github.com/PokeAPI/pokeapi) and saves each possible endpoint as a JSON file using [PokeAPI/ditto](https://github.com/PokeAPI/ditto). All these JSON files are then uploaded to Firebase and served to the public through a [Firebase function](https://github.com/PokeAPI/deploy) actioned by CircleCI.
22986

87+
This website now uses [Astro](https://github.com/withastro/astro) and the code lives in its own GitHub project at [PokeAPI/pokeapi.co](https://github.com/PokeAPI/pokeapi.co). Again, CircleCI takes care of deploying it on Firebase as static files.

0 commit comments

Comments
 (0)